1

我创建了一个简单的活动(带有菜单)并尝试添加菜单项,但在尝试在 onOptionsItemSelected() 方法中实际赋予它们一些功能时它们没有显示出来。我不确定为什么它不起作用,因为我在主要活动的菜单中做了完全相同的事情,而且效果很好。例如,当输入 android.R.id.add_screen_submit_button 时,它不会被识别为存在。如果我强行输入并留下消息“add_screen_submit_button 无法解析或不是字段”出现。菜单也在正确的文件夹中(实际上我只是在创建 Activity 时保持原样)。提前致谢。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/add_screen_submit_button"
    android:orderInCategory="4"
    android:showAsAction="always"
    android:title="@string/add_screen_ok"
    android:icon="@drawable/accept_icon" />

<item
    android:id="@+id/add_screen_cancel_button"
    android:orderInCategory="5"
    android:showAsAction="always"
    android:title="@string/add_screen_cancel"
    android:icon="@drawable/cancel_icon" />

</menu>

这是代码

public class AddActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add);
    // Show the Up button in the action bar.
    //setupActionBar();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.add_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    case android.R.id.add_screen_submit_button:
        Toast.makeText(this, "Map Selected", Toast.LENGTH_SHORT).show();
        break;  
    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}

}
4

1 回答 1

3

改变

android.R.id.home:

R.id.home:

和另一个一样。

android.R适用于 sdk 资源,R.id.some_id适用于id您创建的 s

于 2013-06-04T18:00:11.173 回答