android通用menu

来源:互联网 发布:mac奶瓶粉底液价格 编辑:程序博客网 时间:2024/05/16 12:19

 目标:实现在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;
  }
 }

}

 

 

 

原创粉丝点击