处理菜单项点击Event – Android

我想创build一个意图,开始一个新的活动,一旦菜单项被点击,但我不知道如何做到这一点。 我一直在阅读Android文档,但我的实现是不正确的..和一些正确的方向指导将有所帮助。 我在下面列出了我的代码,并将我的问题区域注释掉,我想我正在调用错误的方法。

package com.jbsoft.SimpleFlashlight; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.*; import android.view.MenuItem.OnMenuItemClickListener; import android.widget.Button; import android.widget.Toast; public class SimpleFlashLightActivity extends Activity { Button GreenButton; // Declare instances of buttons to use later Button BlueButton; private static final int OK_MENU_ITEM = Menu.FIRST; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); BlueButton = (Button) findViewById(R.id.bluebutton); BlueButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Display msg when user clicks Blue Button showColorChangeMsg(); // Switch Activities on click Intent blueintent = new Intent(SimpleFlashLightActivity.this, BlueFlashLightActivity.class); startActivity(blueintent); } }); //Install listener for second button GreenButton = (Button) findViewById(R.id.greenbutton); GreenButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Display msg when user clicks Green Button showColorChangeMsg(); Intent greenintent = new Intent(SimpleFlashLightActivity.this, GreenFlashLightActivty.class); startActivity(greenintent); } }); ; /**************************************************************************************/ // Method Declarations // THIS IS WHERE I'M HAVING A PROBLEM MenuItem AddColorButton = (MenuItem)findViewById(R.id.menu_insert); boolean onOptionsItemSelected(AddColorButton) { Intent intent = new Intent(SimpleFlashLightActivity.this, BlueFlashLightActivity.class); startActivity(intent); return true; ; }; /****************************************************************************************/ } private void showColorChangeMsg() { Toast msgtoast = Toast.makeText(this.getBaseContext(), "SWITCH COLOR!", Toast.LENGTH_LONG); msgtoast.show(); } private void showMsg(String msg) { Toast toast = Toast.makeText(this, msg, Toast.LENGTH_LONG); toast.show(); } public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.list_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case OK_MENU_ITEM: showMsg("OK"); break; } return super.onOptionsItemSelected(item); } } 

创build菜单的简单代码

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

简单的代码菜单select

 @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.new_game: newGame(); return true; case R.id.help: showHelp(); return true; default: return super.onOptionsItemSelected(item); } } 

更多详情请点击链接..

链接1

LINK2

添加以下代码

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.new_item: Intent i = new Intent(this,SecondActivity.class); this.startActivity(i); return true; default: return super.onOptionsItemSelected(item); } } 

菜单项目文件看起来像

RES /菜单/ menu_main.xml

 <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=".MainActivity"> <item android:id="@+id/settings" android:title="Setting" app:showAsAction="never" /> <item android:id="@+id/my_activity" android:title="My Activity" app:showAsAction="always" android:icon="@android:drawable/btn_radio"/> </menu> 

Java代码看起来像

SRC / MainActivity.java

 @Override public boolean onCreateOptionsMenu(Menu menu) { present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.my_activity) { Intent intent1 = new Intent(this,MyActivity.class); this.startActivity(intent1); return true; } if (id == R.id.settings) { Toast.makeText(this, "Setting", Toast.LENGTH_LONG).show(); return true; } return super.onOptionsItemSelected(item); } 

并将以下代码添加到您的AndroidManifest.xml文件中

 <activity android:name=".MyActivity" android:label="@string/app_name" > </activity> 

我希望这会帮助你。

这段代码适合我

 @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { // add your action here that you want return true; } else if (id==R.id.login) { // add your action here that you want } return super.onOptionsItemSelected(item); }