ContextMenu的简单使用

public class ContextMenuActivity extends Activity
        implements View.OnClickListener {
    private String TAG = ContextMenuActivity.class.getSimpleName();
    TextView txt;
    ContextMenu menu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_context_menu);
        txt = (TextView) findViewById(R.id.txt);
        txt.setOnClickListener(this);
        registerForContextMenu(txt);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterForContextMenu(txt);
    }

    @Override
    public void onClick(View v) {

    }

    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        int itemId = item.getItemId();
        switch (itemId) {
            case 0:
                Toast.makeText(this, "菜单1", Toast.LENGTH_SHORT).show();
                break;
            case 1:
                Toast.makeText(this, "菜单2", Toast.LENGTH_SHORT).show();
                break;
            case 2:
                Toast.makeText(this, "子菜单", Toast.LENGTH_SHORT).show();
                break;
            case 3:
                Toast.makeText(this, "子菜单项1", Toast.LENGTH_SHORT).show();
                break;
            case 4:
                Toast.makeText(this, "子菜单项2", Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onMenuItemSelected(featureId, item);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);

        menu.setHeaderTitle("上下文菜单");
        menu.setHeaderIcon(R.mipmap.ic_launcher);

        menu.add(0, 0, Menu.NONE, "菜单项1");
        menu.add(2, 1, Menu.NONE, "菜单项2");

        SubMenu sub = menu.addSubMenu(1, 2, Menu.NONE, "子菜单");
        sub.add(1, 3, Menu.NONE, "子菜单项1");
        sub.add(1, 4, Menu.NONE, "子菜单项2");
    }
}


           


需要注意几点:

(1)ContextMenu可以绑定在任意的View上面,比如这里的TextView。其他的ListView也是一样。

(2)ItemId非常的重要,onMenuItemSeleected()就是根据这个ItemId来进行处理的。

(3)在register的时候,主要要unregister。

(4)可以看到子菜单还会弹出的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值