- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我按操作栏中的按钮时,我的应用程序就会崩溃,但是仅当该按钮与Webview有关时,它才会发生。但是web View 确实加载网页的onCreate方法仍然可以工作。
public boolean onOptionsItemSelected(MenuItem item) {
setContentView(R.layout.activity_main);
mWebview =(WebView) findViewById(R.id.webView1);
switch (item.getItemId()) {
// If button 1 is pressed
case R.id.about:
// Toast Message
Toast.makeText(this, "App made by Robin Flikkema & Sander ten Hove",
Toast.LENGTH_LONG).show();
break;
// If Share is pressed
case R.id.menu_share:
// Toast message
Toast.makeText(this, "Roosterwijzigingen delen",
Toast.LENGTH_SHORT).show();
// Making share selector
String shareBody = "Er vervallen nieuwe lessen! Check het uit, met de Eemsdeltacollege Roosterwijzigingen App.";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Eemsdeltacollege Roosterwijzigingen");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.share_using)));
break;
// If Next is pressed
case R.id.menu_next:
// Toast message
Toast.makeText(this, "Morgen",
Toast.LENGTH_SHORT).show();
// Calculate Date
Calendar cal=Calendar.getInstance();
int currentDay=cal.get(Calendar.DAY_OF_MONTH);
//Set the date to 1 day
cal.set(Calendar.DAY_OF_MONTH, currentDay+1);
while (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY ||
cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
cal.add(Calendar.DATE, 1);
}
Date DateDate = cal.getTime();
SimpleDateFormat postFormater = new SimpleDateFormat("dd-M-yyyy");
String newDateStr = postFormater.format(DateDate);
// Set URL
mWebview .loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php?datum="+newDateStr);
setContentView(mWebview );
break;
// If Refresh is pressed
case R.id.menu_refresh:
// Toast message
Toast.makeText(this, "Roosterwijzigingen ophalen.",
Toast.LENGTH_SHORT).show();
// Load URL
mWebview .loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
setContentView(mWebview );
break;
// If Overmorgen is pressed
case R.id.menu_nextt:
// Toast message
Toast.makeText(this, "Overmorgen",
Toast.LENGTH_SHORT).show();
// Calculate Date
Calendar cal1=Calendar.getInstance();
int currentDay1=cal1.get(Calendar.DAY_OF_MONTH);
//Set the date to 1 day
cal1.set(Calendar.DAY_OF_MONTH, currentDay1+2);
while (cal1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY ||
cal1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
cal1.add(Calendar.DATE, 1);
}
Date DateDate1 = cal1.getTime();
SimpleDateFormat postFormater1 = new SimpleDateFormat("dd-M-yyyy");
String newDateStr1 = postFormater1.format(DateDate1);
// Set URL
mWebview .loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php?datum="+newDateStr1);
setContentView(mWebview );
break;
// If Help is pressed
case R.id.action_settings:
// Toast message
Toast.makeText(this, "Laden van de Help pagina.",
Toast.LENGTH_SHORT).show();
// Load Help
mWebview .loadUrl("https://dl.dropboxusercontent.com/u/53488707/RoosterwijzigingenApp/index.html");
setContentView(mWebview );
break;
// If Vandaag is pressed
case R.id.menu_back:
// Toast message
Toast.makeText(this, "Vandaag",
Toast.LENGTH_SHORT).show();
// Load Help
mWebview.loadUrl("http://divers.ommelandercollege.nl/webportalen/dagrooster.php");
setContentView(mWebview);
break;
}
return super.onOptionsItemSelected(item);
}
06-25 16:04:12.495: E/AndroidRuntime(16692): FATAL EXCEPTION: main
06-25 16:04:12.495: E/AndroidRuntime(16692): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.view.ViewGroup.addViewInner(ViewGroup.java:3378)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.view.ViewGroup.addView(ViewGroup.java:3249)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.view.ViewGroup.addView(ViewGroup.java:3225)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:275)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:265)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.app.Activity.setContentView(Activity.java:1887)
06-25 16:04:12.495: E/AndroidRuntime(16692): at org.flikkema.robin.dagrooster.MainActivity.onOptionsItemSelected(MainActivity.java:138)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.app.Activity.onMenuItemSelected(Activity.java:2534)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:958)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:514)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:99)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.view.View.performClick(View.java:4084)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.view.View$PerformClick.run(View.java:16966)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.os.Handler.handleCallback(Handler.java:615)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.os.Handler.dispatchMessage(Handler.java:92)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.os.Looper.loop(Looper.java:137)
06-25 16:04:12.495: E/AndroidRuntime(16692): at android.app.ActivityThread.main(ActivityThread.java:4745)
06-25 16:04:12.495: E/AndroidRuntime(16692): at java.lang.reflect.Method.invokeNative(Native Method)
06-25 16:04:12.495: E/AndroidRuntime(16692): at java.lang.reflect.Method.invoke(Method.java:511)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-25 16:04:12.495: E/AndroidRuntime(16692): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-25 16:04:12.495: E/AndroidRuntime(16692): at dalvik.system.NativeStart.main(Native Method)
最佳答案
setContentView()
实际上应该只在onCreate()
中被调用一次。
否则,每次调用它时,都需要再次填充所有 View 引用。不要在onOptionsItemSelected
中再次调用它
关于android - 每当我按操作栏中的按钮时,应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299425/
我在让我的操作栏显示图标时遇到问题。它显示了我在溢出菜单中设置的文本/标题(三个点),但没有任何操作。这是我的代码,我错过了什么? MainActivity.java public class Mai
我正在尝试在 android 中制作一个动态操作栏,现在我正在尝试像这样在操作栏中进行搜索。 http://developer.android.com/images/ui/actionbar-sear
我正在编写 uiautomator 测试,但我很难弄清楚如何单击我的操作栏图标。 如果我的操作是“始终”显示,则很容易找到并点击。 如果我的操作是显示“从不”,我必须单击菜单,然后从菜单中单击。先点击
我有一个正在寻找特定 URI 的重写规则。当它匹配特定的 URL 时,它会使用正确的文件路径重写它,以便可以找到所需的内容。然后它将协议(protocol)更改为 HTTPS 并允许请求通过。 我有两
我正在为 android 中的 ActionBar 而苦苦挣扎。 这是我的问题:我的操作项没有显示在操作栏中,而是堆叠在操作溢出中,无论我做什么.. 我花了一天的时间寻找解决方案,但我似乎找不到缺少的
我的网络应用程序在 Tomcat 下运行,它非常密集地使用 AJAX 请求,在开发过程中我也必须密集地重新部署网络应用程序。重新部署后,我通常会简单地刷新页面,知道用户 session 已删除,但我总
我是一名优秀的程序员,十分优秀!