Andorid——菜单:上下文菜单

来源:互联网 发布:js显示鼠标轨迹 编辑:程序博客网 时间:2024/06/16 06:22


一,简介


      

Android系统中的ContextMenu(上下文菜单)类似于PC的右键弹出菜单,当一个视图注册了上下文菜单,长按该试图对象将出现一个提供相关功能的浮动菜单。

 

使用:

上下文菜单可以被注册到任何视图中,最常见的是ListView,但是上下文菜单不支持图标和快捷键。


二,调用需要的方法


                    1,onCreateContextMenu方法:当上下文菜单被创建时 回调该函数

             2,onContextItemSelected方法:当上下文菜单某项被选中时回调该函数

             3,registerForContextMenu方法:注册上下文菜单


三,代码实现


         1,添加XML布局文件:

                           

<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/myTextView"    android:textSize="20sp"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:text="长按。。。"    />


          2,代码:

                                                 

public class MainActivity extends ListActivity /*注意这里继承的类*/{    private static final int ITEM1 = Menu.FIRST;    private static final int ITEM2 = Menu.FIRST+1;    private static final int ITEM3 = Menu.FIRST+2;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //setContentView(R.layout.activity_main);        showListView();        registerForContextMenu(getListView());    }        private void showListView(){        String[] mString = new String[]{                "评论1:请叫我叶良辰!",                 "评论2:只有我叶良辰才这么帅气逼人了!",                 "评论3:良辰在此谢过了!",                "评论4:哎呦,不错呦!",                 "评论5:搜嘎!~~~~·",                 "评论6:还记得大明湖畔的容嬷嬷么?",                 "评论7:尔康,有人抢了你的风头!",        };        ArrayAdapter<String> mla = new ArrayAdapter<String>(MainActivity.this,                 R.layout.main, mString);        MainActivity.this.setListAdapter(mla);          }//当上下文菜单被创建时 回调该函数    @Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {        menu.setHeaderTitle("删除评论!");        //添加菜单项        menu.add(0, ITEM1, 0, "删除");        menu.add(0, ITEM2, 0, "取消");super.onCreateContextMenu(menu, v, menuInfo);}    //当上下文菜单某项被选中时回调该函数    @Overridepublic boolean onContextItemSelected(MenuItem item) {            //获取当前被选择的菜单项的信息        switch(item.getItemId()){        case ITEM1:            //在这里添加处理代码            break;        case ITEM2:            //在这里添加处理代码            break;            }        return true;}}


        注意继承的Activity基类,刚开始继承的类写错了,导致 无法找到getListView方法。



           




           


1 0
原创粉丝点击