Andorid——菜单:上下文菜单


一,简介


      

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);      
    }

	//当上下文菜单被创建时 回调该函数
    @Override
	public 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);
	}

    //当上下文菜单某项被选中时回调该函数
    @Override
	public boolean onContextItemSelected(MenuItem item) {
    	
        //获取当前被选择的菜单项的信息
        switch(item.getItemId()){
        case ITEM1:

            //在这里添加处理代码
            break;

        case ITEM2:

            //在这里添加处理代码
            break;    
        }
        return true;
	}

	
}


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



           




           


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值