【问题标题】:Action Bar Menu Items not Working操作栏菜单项不起作用
【发布时间】:2014-03-10 10:55:59
【问题描述】:

我创建了一个带有两个菜单项的操作栏。当我尝试对按钮使用意图时,它们不起作用。单击菜单项时,将加载网页。如何操作。

main.xml:

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

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        yourapp:showAsAction="never"
        android:title="@string/action_settings"/>

    <item
        android:id="@+id/camera"
        android:icon="@drawable/ic_menu_camera"
        android:title="Camera"
        yourapp:showAsAction="always"/>

    <item
        android:id= "@+id/emoticons"
        android:icon="@drawable/ic_menu_emoticons"
        android:title="Emoticon"
        yourapp:showAsAction="always"/>
</menu>

MainActivity.java:

public class MainActivity extends Activity {

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

    }

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

    public boolean OnOptionsItemSelected(MenuItem item){

        switch(item.getItemId()) {
        case R.id.camera:
            startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.google.com/")));

            return true;
        case R.id.emoticons:
            startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://www.google.com/")));
            return true; 

        default:
            return super.onOptionsItemSelected(item);

        }
    }   
}

谢谢

【问题讨论】:

  • @developerknownasInsane 按按钮 OP 表示,菜单项。

标签: java android android-actionbar


【解决方案1】:

您的方法被错误的名称覆盖(因此未被覆盖而是不同的方法),因此未被菜单调用。

public boolean OnOptionsItemSelected(MenuItem item) {

应该以小“o”开头

@Override
public boolean onOptionsItemSelected(MenuItem item) {

您应该使用 Override 注释来避免此类错误。

【讨论】:

    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 2015-12-17
    • 2012-12-19
    • 2014-02-03
    • 1970-01-01
    相关资源
    最近更新 更多