操作栏菜单项不起作用

时间:2014-02-12 08:30:53

标签: java android android-actionbar

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

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

        }
    }   
}

由于

1 个答案:

答案 0 :(得分:2)

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

public boolean OnOptionsItemSelected(MenuItem item) {

应该以小“o”开头

@Override
public boolean onOptionsItemSelected(MenuItem item) {

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