目标:实现在MenuTest.java, ActivityC.java, ActivityB.java 三个视图中加载统一Menu 响应相同事件
1,res/menu/my_menu.xml文件为Menu布局文件
创建方式:鼠标右键点击res-->new-->other-->android xml file 选择menu项
2,自定义MyActivity 实现onCreateOptionsMenu 和 onOptionsItemSelected 方法
MenuHandler.java Menu事件处理
参考 http://blog.dzwww.com/?937842/viewspace-385048
http://blog.163.com/llllamso_0819@126/blog/static/647443192011060435626/
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/previous"
android:title="previous"
android:enabled="false"
android:icon="@drawable/icon"/>
<item
android:id="@+id/play_pause"
android:title="play"
android:icon="@drawable/icon"/>
<item
android:id="@+id/next"
android:title="next"
android:icon="@drawable/icon"/>
<item
android:id="@+id/previous_1"
android:title="previous_1"
android:enabled="false"
android:icon="@drawable/icon"/>
<item
android:id="@+id/play_pause_1"
android:title="play_1"
android:icon="@drawable/icon"/>
<item
android:id="@+id/next_1"
android:title="next_1"
android:icon="@drawable/icon"/>
<item
android:id="@+id/previous_2"
android:title="previous_2"
android:enabled="false"
android:icon="@drawable/icon"/>
<item
android:id="@+id/play_pause_2"
android:title="play_2"
android:icon="@drawable/icon"/>
<item
android:id="@+id/next_2"
android:title="next_2"
android:icon="@drawable/icon"/>
</menu>
package com.gui.memu;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
public class MyActivity extends Activity{
//创建Menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
//引入Menu布局文件
getMenuInflater().inflate(R.menu.my_menu, menu);
return true;
}
//Menu相应事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
// 集中处理事件
MenuHandler.handler(item,this);
return super.onOptionsItemSelected(item);
}
}
package com.gui.memu;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MenuTest extends MyActivity implements OnClickListener{
final static String ACTION_B = "android.intent.action.b";
final static String ACTION_C = "com.gui.activity.c";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("MenuTest");
Button button = (Button) this.findViewById(R.id.button_a);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// Intent intent = new Intent(this,ActivityB.class);
Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
}
}
package com.gui.memu;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ActivityB extends MyActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activityb);
setTitle("ActivityB");
Button button = (Button) this.findViewById(R.id.button_b);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ActivityB.this, ActivityC.class);
startActivity(intent);
}
}
package com.gui.memu;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ActivityC extends MyActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activityc);
setTitle("ActivityC");
Button button = (Button) this.findViewById(R.id.button_c);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ActivityC.this, MenuTest.class);
startActivity(intent);
}
}
package com.gui.memu;
import android.content.Context;
import android.util.Log;
import android.view.MenuItem;
public class MenuHandler {
final static String TAG = "MenuHandler";
public static void handler(MenuItem item, Context context) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.previous:
case R.id.previous_1:
case R.id.previous_2:
Log.i(TAG, "You have pressed previous_item");
break;
case R.id.play_pause:
case R.id.play_pause_1:
case R.id.play_pause_2:
Log.i(TAG, "You have pressed play_pause_item");
break;
case R.id.next:
case R.id.next_1:
case R.id.next_2:
Log.i(TAG, "You have pressed next_item");
break;
default:
break;
}
}
}