Android选项菜单不起作用?

时间:2016-09-07 12:41:40

标签: java android callback android-optionsmenu

我的项目中有一个Activity。我创建了一个包含3个项目的选项菜单。 我不知道为什么,但它对我不起作用。每当我选择一个项目时,我都会得到项目ID 0。

RES /菜单/ m1.xml:

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);
    }
}

活动:

$('#dummy-notification').text(data.Result).fadeIn("slow").delay(3000).fadeOut("slow", function () {
    setTimeout(function () {
        location.reload();
    }, 5000);
});

当我选择一个项目时,我在日志中始终为0。为什么呢?

3 个答案:

答案 0 :(得分:0)

使用以下代码

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

答案 1 :(得分:0)

用此代码替换您的代码

 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);
    }

答案 2 :(得分:0)

您需要将菜单扩展到视图

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

doo this