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);
}
}
有图有真相