Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android选项菜单不工作?_Java_Android_Callback_Android Optionsmenu - Fatal编程技术网

Java Android选项菜单不工作?

Java Android选项菜单不工作?,java,android,callback,android-optionsmenu,Java,Android,Callback,Android Optionsmenu,我的项目中只有一项活动。我创建了一个包含3项的选项菜单。 我不知道为什么,但这对我不起作用。每次选择项目时,我都会获得项目ID 0 res/menu/m1.xml: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/ITEM1" andr

我的项目中只有一项活动。我创建了一个包含3项的选项菜单。 我不知道为什么,但这对我不起作用。每次选择项目时,我都会获得项目ID 0

res/menu/m1.xml:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/ITEM1"
        android:title="one">
    </item>
    <item android:id="@+id/ITEM2"
        android:title="two">
    </item>
    <item android:id="@+id/ITEM3"
        android:title="three">
    </item>
</menu>
public class MainActivity extends Activity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add("1");
        menu.add("2");
        menu.add("3");
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()){
            case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT);
                break;
            case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT);
                break;
            case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT);
                break;
            default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT);
        }
        Log.v("DEMO", "Item ID: "+item.getItemId());
        return super.onOptionsItemSelected(item);
    }
}

当我选择一个项目时,我在日志中总是得到0。为什么?

用下面的代码替换onCreateOptionsMenu()方法

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

用以下代码替换onCreateOptionsMenu()方法

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

用此代码替换您的代码

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()){
            case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT);
                break;
            case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT);
                break;
            case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT);
                break;
            default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT);
        }
        Log.v("DEMO", "Item ID: "+item.getItemId());
        return super.onOptionsItemSelected(item);
    }

用此代码替换您的代码

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()){
            case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT);
                break;
            case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT);
                break;
            case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT);
                break;
            default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT);
        }
        Log.v("DEMO", "Item ID: "+item.getItemId());
        return super.onOptionsItemSelected(item);
    }

您需要将菜单充气到视图中

 MenuInflater inflater = getMenuInflater();
 inflater.inflate(R.menu.menu, menu);

为此

您需要将菜单充气到视图中

 MenuInflater inflater = getMenuInflater();
 inflater.inflate(R.menu.menu, menu);

这是什么?

@momo:你得到答案了吗?@momo:你得到答案了吗?