关于actionbar和popupmenu结合的实例

来源:互联网 发布:属下知罪by枯目腐书 编辑:程序博客网 时间:2024/05/17 01:22
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);//        }//    }@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {// TODO Auto-generated method stubregisterForContextMenu(arg1);}}


有图有真相


0 0
原创粉丝点击