- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 onOptionsItemSelected 启动一个新 Activity (设置 Activity ),但是当我单击选项二时出现致命异常,它启动设置 Activity 一段时间后崩溃。
如果我从其他任何地方启动设置 Activity 而不是它启动时没有任何错误。
设置 Activity
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
}
第一个 Activity (Room1.java):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_room1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflator = getMenuInflater();
inflator.inflate(R.menu.room1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==R.id.menu_option_two){
Settings();
Log.d("Option","2");
}
return super.onOptionsItemSelected(item);
}
private void Settings() {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent) ;
}
room1.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:icon="@android:drawable/ic_menu_share"
android:title="Option 1"
android:id="@+id/menu_option_one"
/>
<item
android:icon="@android:drawable/ic_menu_preferences"
android:title="Option 2"
android:id="@+id/menu_option_two"
/>
<item
android:icon="@android:drawable/ic_menu_info_details"
android:title="Option 3"
android:id="@+id/menu_option_three"
/>
</menu>
这是主要的
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.homeautomation.Splash"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.homeautomation.Main"
android:label="@string/title_activity_main"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.example.homeautomation.Room1"
android:label="@string/title_activity_room1"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.example.homeautomation.DemoMSG"
android:label="@string/title_activity_demo_msg"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.example.homeautomation.SettingsActivity"
android:label="@string/title_activity_settings"
>
</activity>
</application>
日志猫:
04-19 03:59:28.179: I/Choreographer(2733): Skipped 100 frames! The application may be doing too much work on its main thread.
04-19 03:59:32.849: D/Option(2733): 2
04-19 03:59:34.659: D/AndroidRuntime(2733): Shutting down VM
04-19 03:59:34.659: W/dalvikvm(2733): threadid=1: thread exiting with uncaught exception (group=0xb4a1eb90)
04-19 03:59:34.679: E/AndroidRuntime(2733): FATAL EXCEPTION: main
04-19 03:59:34.679: E/AndroidRuntime(2733): Process: com.example.homeautomation, PID: 2733
04-19 03:59:34.679: E/AndroidRuntime(2733): java.lang.RuntimeException: Unable to stop activity {com.example.homeautomation/com.example.homeautomation.Room1}: java.lang.NullPointerException
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3169)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3215)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.ActivityThread.access$1000(ActivityThread.java:135)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.os.Handler.dispatchMessage(Handler.java:102)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.os.Looper.loop(Looper.java:137)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.ActivityThread.main(ActivityThread.java:4998)
04-19 03:59:34.679: E/AndroidRuntime(2733): at java.lang.reflect.Method.invokeNative(Native Method)
04-19 03:59:34.679: E/AndroidRuntime(2733): at java.lang.reflect.Method.invoke(Method.java:515)
04-19 03:59:34.679: E/AndroidRuntime(2733): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
04-19 03:59:34.679: E/AndroidRuntime(2733): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
04-19 03:59:34.679: E/AndroidRuntime(2733): at dalvik.system.NativeStart.main(Native Method)
04-19 03:59:34.679: E/AndroidRuntime(2733): Caused by: java.lang.NullPointerException
04-19 03:59:34.679: E/AndroidRuntime(2733): at com.example.homeautomation.Room1.onStop(Room1.java:183)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1212)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.Activity.performStop(Activity.java:5388)
04-19 03:59:34.679: E/AndroidRuntime(2733): at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3166)
04-19 03:59:34.679: E/AndroidRuntime(2733): ... 11 more
04-19 03:59:37.299: I/Process(2733): Sending signal. PID: 2733 SIG: 9
04-19 03:59:38.729: D/dalvikvm(2760): GC_FOR_ALLOC freed 35K, 4% free 2716K/2828K, paused 34ms, total 35ms
04-19 03:59:38.729: I/dalvikvm-heap(2760): Grow heap (frag case) to 3.192MB for 491416-byte allocation
04-19 03:59:38.779: D/dalvikvm(2760): GC_FOR_ALLOC freed <1K, 4% free 3195K/3308K, paused 42ms, total 42ms
04-19 03:59:38.999: D/gralloc_goldfish(2760): Emulator without GPU emulation detected.
最佳答案
使用这样的东西:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_option_two:
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
关于java - 从 onOptionsItemSelected 开始新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167647/
对于 onOptionsItemSelected 方法,只有在单击项目时才会调用此方法,对吗?如果在该 Activity 中单击了一个项目,但由于某些奇怪的原因,程序员没有 if 语句来检查该项目的
我有一个可以包含多个 fragment 的 Activity 。每个 fragment 都可以在 ActionBar 中有自己的菜单项。到目前为止这工作正常,每个项目都是可点击的并执行所需的操作。 我
我对这段代码感到困惑,我有 6 个菜单项,每个菜单项我希望它在 Web View 上加载不同的网页,但我看不到我在哪里可以说当选择第 3 项时执行此操作,有人可以帮忙吗? @Override
我的 fragment 上有这个调用 @Override public boolean onOptionsItemSelected(MenuItem item) { Toast
使用 Android Studio,我正在为我的应用程序创建设置(这是我第一次这样做)。我遇到了 onOptionsItemSelected 问题,我不知道如何继续。这是我的 LogCat: FATA
我有一个实现 onCreateOptionsMenu 方法的顶级 TabHost。我希望子 Activity (选项卡内的子 Activity )能够通过 onOptionsItemSelected
如何避免双击我的示例,任何解决方案? @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getI
我对 public boolean onOptionsItemSelected(MenuItem item) 有问题。 我的代码: public boolean onOptionsItemSelect
我的操作栏上有两个按钮,一个注销按钮和一个创建新消息按钮。但是,如果我单击创建新消息按钮(什么都不应该发生),它会让我退出。我的代码设置为它应该做的。有什么建议吗? @Override pub
我是 Android 开发的新手。 在我的 MainActivity.java 文件中,我声明了一个 onOptionsItemSelected(MenuItem menu) 方法,允许用户在当前 M
我遇到过这样一种情况,我需要为一个项目的子菜单实现 onOptionsItemSelected 监听器。菜单 xml 文件如下所示:
我不确定这是否重复,我尝试过的可能的补救措施无效。 (下面会提到) 我目前正在为我正在做的项目使用 Theme.AppCompat.NoActionBar 并且正在使用 android.support
我在 Android 中的一项 Activity 中有一个抽屉导航。我还在同一 Activity 的操作栏中添加了几个操作按钮和一个操作溢出。现在,问题在于处理抽屉导航项目、操作按钮和操作溢出菜单的选
我已经为我的数据库类创建了一个选项菜单。启动选项菜单后,我想通过单击指定按钮进行所需的 Activity 。 但问题是,如果我单击任何选项,我将被定向到 MainMenu.class。任何想法为什么会
我是 Android 的新手,如果我的问题看起来很简单,我很抱歉。我昨晚整晚都在查找它,但找不到解决方案(这让我觉得我可能在我试图实现的目标上存在根本缺陷)。 基本上,我试图从 onOptionsIt
我正在使用我的 fragment 处理返回功能。我使用操作栏作为返回按钮,但函数 onOptionsItemSelected 不起作用(甚至可能未调用该函数) 此代码在我的 FragmentActiv
我的操作栏中有一个菜单项列表。每个项目点击应该触发不同的方法。但是永远不会调用 onOptionsItemSelected。 这是在 MainActivity 中定义 actionbar 的方式: p
我有一个带有两个按钮的 onOptionsItemSelected 方法,我可以通过单击其中一个按钮来更改子项的值。 一个按钮是“完成”,另一个是“进行中”。 我单击完成按钮,它正确地更改了子值,然后
我使用 Sherlock 的操作栏。我正在尝试将其实现到我的应用程序中。但似乎我错过了一些让它发挥作用的东西。请检查我的代码。当我点击操作按钮时,我的应用程序没有做任何事情。下面是我的代码和我的 xm
我目前正在开发一款 Android 应用。我想使用操作栏中的应用程序图标导航到“主页” Activity 。我继续阅读 this所有需要做的就是添加一个 onOptionsItemSelected 并
我是一名优秀的程序员,十分优秀!