OnOptionsItemSelected()没有发送到新活动?

时间:2013-02-04 18:06:17

标签: android android-intent

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_screen, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_settings:
        Intent Options = new Intent(this,
                Options.class);
        this.startActivity(Options);
        break;
    default:
        return super.onOptionsItemSelected(item);
    }

    return true;
}

我的onOptionsItemSelected()没有将我发送到我设置的活动。它只是让我回到上一个屏幕。没有错误或任何东西,只是踢回屏幕?我也在清单文件中声明了Options.class。

有什么想法吗?

修改

Options.class

import android.app.Activity;
import android.os.Bundle;

public class Options extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);
   }
}

main_screen.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
    android:title="@string/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never" />

LogCat:只需将我发送到活动,然后马上回来

02-04 12:26:55.494: I/ActivityManager(150): Starting activity: Intent { cmp=com.app.test/.Options } from pid 7978
02-04 12:26:55.504: I/ActivityManager(150): Starting activity: Intent { cmp=com.app.test/.MainScreen (has extras) } from pid 7978

2 个答案:

答案 0 :(得分:0)

对我来说,看起来它没有进入正确的catch块并运行默认选项。 试试这个:

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.main_screen, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_settings:
        Intent Options = new Intent(this,
                Options.class);
        this.startActivity(Options);
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }


}

如果它不起作用,请放入Log或Toast或其他东西以查看它是否进入

 case R.id.menu_settings:

答案 1 :(得分:0)

尝试相同但没有

case R.id.menu_settings:
    Intent Options = new Intent(MainActivity.this, Options.class);
    startActivity(Options);
        return true;

它适用于我,我希望它有所帮助。