单击时,操作栏项目不起作用

时间:2015-04-22 22:27:06

标签: android xml

我在这里遇到了一个不寻常的问题。我的操作栏工作正常然后我现在进行了测试,它完全停止了。按下时,它们没有响应。一个是后退按钮,另一个是发送按钮。这两个都不起作用。这是我的菜单代码

ActivityOne.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_send, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {

        case R.id.home:
            super.onBackPressed();
            return true;

        case R.id.action_send:
            new PostUpLoad().execute();
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}

menu_send.xml

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   tools:context=".ActivityOne">

 <item
    android:id="@+id/action_send"
    android:orderInCategory="100"
    android:title="@string/send"
    android:icon="@drawable/ic_send"
    app:showAsAction="ifRoom" />
 </menu>

一切似乎都很好,但他们根本不工作。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您在交换机案例中遗漏了中断,我不确定在onCreateOptionsMenu中返回true(菜单菜单)

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_send, menu);
    return super.onOptionsItemSelected(item);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {

    case R.id.home:
        super.onBackPressed(); //might use finish() instead
        break;

    case R.id.action_send:
        new PostUpLoad().execute();
        break;

    default:
        super.onOptionsItemSelected(item);
}

}

答案 1 :(得分:0)

R.id.home替换为android.R.id.home