关于actionbar和popupmenu结合的实例

package com.example.actionbartest;
import java.util.ArrayList;
import java.util.List;
 
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.Toast;
 
/**
 * 
 * menu 的简单使用
 * 
 * 
 * 
 * @date 2013-12-30 上午9:55:29
 */
public class MainActivity extends Activity implements OnMenuItemClickListener,
        OnCreateContextMenuListener, OnItemClickListener {
 
    private ListView listview;
    PopupMenu mPopupMenu;
    static View mViewItem;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mViewItem = findViewById(R.id.item3);
//        final Button btn = (Button)findViewById(R.id.showpop);
//
//        
//        btn.setOnClickListener(new OnClickListener(){
//
//			@Override
//			public void onClick(View arg0) {
//				// TODO Auto-generated method stub
//				showpop(btn);
//			}
//			
//        	
//        });
//        listview = (ListView) findViewById(R.id.listView1);
//        List<String> list = new ArrayList<String>();
//        for (int i = 0; i < 20; i++) {
// 
//            list.add(i+ "");
//        }
//        listview.setAdapter(new ArrayAdapter<String>(this,
//                android.R.layout.simple_list_item_1, list));
// 
//        listview.setOnItemClickListener(this);
 
    }
 
    /**
     * 创建popviewMenu
     * 
     * @param v
     */
    public void showpop(View v) {
        PopupMenu popup = new PopupMenu(this, v);
        MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.main, popup.getMenu());
        popup.setOnMenuItemClickListener(this);
        popup.show();
        //return popup;
 
    }
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    	  
    	  if (keyCode == KeyEvent.KEYCODE_MENU) { 
    	   // 在这里做你想做的事情
//    	   super.openOptionsMenu();  // 调用这个,就可以弹出菜单
    	  Log.e("jihui----","onkey----menu");
    	  Log.e("jihui---onKeyDownbe","mViewItem = " + mViewItem);
    	  mViewItem = findViewById(R.id.item3);
          Log.e("jihui---onKeyDownaf","mViewItem = " + mViewItem);
      	showpop(mViewItem);
    	  }
		return true; 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
    	menu.add(0, 0, 0, "22");
        getMenuInflater().inflate(R.menu.main, menu);
        mViewItem = findViewById(R.id.item3);
        Log.e("jihui---onCreateOptionsMenu","mViewItem = " + mViewItem);
        //mPopupMenu = showpop(findViewById(R.id.item3));
        return true;
    }
 
    /*
     * (non-Javadoc)
     * 
     * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.item1:
            Toast.makeText(this, "you have clicked 1111" , 0).show();
            break;
        case R.id.item2:
            Toast.makeText(this, "you have clicked 22222" , 0).show();
            break;
        case R.id.item3:
        	//mPopupMenu.show();
        	mViewItem = findViewById(item.getItemId());
        	Log.e("jihui---onPtion","mViewItem = " + mViewItem);
        	showpop(mViewItem);
            Toast.makeText(this, "you have clicked 33333" , 0).show();
            break;
        case R.id.item4:
            Toast.makeText(this, "you have clicked 44444" , 0).show();
            break;
 
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
 
    /**
     * 响应popmenu的点击事件
     */
    @Override
    public boolean onMenuItemClick(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.item1:
            Toast.makeText(this, "you have clicked 12222" , 0).show();
            break;
        case R.id.item2:
            Toast.makeText(this, "you have clicked 2222211" , 0).show();
            break;
        case R.id.item3:
            Toast.makeText(this, "you have clicked 3222222" , 0).show();
            break;
        case R.id.item4:
            Toast.makeText(this, "you have clicked 4222222" , 0).show();
            break;
 
        default:
            break;
        }
        return false;
    }
 
    /**
     * listview响应事件
     */
 
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
    }
 
//    @Override
//    public boolean onContextItemSelected(MenuItem item) {
//        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
//                .getMenuInfo();
//        switch (item.getItemId()) {
//        case R.id.item1:
//            Toast.makeText(this, "you have clicked 133333333" , 0).show();
//            return true;
//        case R.id.item2:
//            Toast.makeText(this, "you have clicked 2333333333" , 0).show();
//            return true;
//        case R.id.item3:
//            Toast.makeText(this, "you have clicked 333333333333333333333333" , 0).show();
//            return true;
//        case R.id.item4:
//            Toast.makeText(this, "you have clicked 43333333333333" , 0).show();
//            return true;
//        default:
//            return super.onContextItemSelected(item);
//        }
//    }

	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		// TODO Auto-generated method stub
		registerForContextMenu(arg1);
	}
}


有图有真相


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值