我创建了一个包含两个菜单项的操作栏。当我尝试使用按钮的意图时,它们不起作用。单击菜单项时,将加载网页。如何操作。
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);
}
}
}
由于
答案 0 :(得分:2)
您的方法被错误的名称覆盖(因此不会被覆盖,但是是一种不同的方法),因此不会被菜单调用。
public boolean OnOptionsItemSelected(MenuItem item) {
应该以小“o”开头
@Override
public boolean onOptionsItemSelected(MenuItem item) {
您应该使用覆盖注释来避免此类错误。