android listview 长按弹出菜单--ContextMenu并进行删除操作

    private List<String> list = new ArrayList<String>();


    //为listview创建成员对象
    private ListView lv;

    private ArrayAdapter<String> myadapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_list_manager);


        list.add("first");
        list.add("second");
        list.add("third");

        lv=(ListView)findViewById(R.id.lv);


        //设置Adapter
        myadapter=new ArrayAdapter<TrueFalse>(ManagerListActivity.this, android.R.layout.simple_list_item_1,lstQuestions);
        lv.setAdapter(myadapter);

        //设置ContextMenu,长按listitem时触发
        lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {

            @Override
            public void onCreateContextMenu(ContextMenu arg0, View arg1,
                    ContextMenuInfo arg2) {
                // TODO Auto-generated method stub
                arg0.setHeaderTitle("选择操作");
                arg0.add(0, 0, 0, "删除");
                arg0.add(0, 1, 0, "未定");
            }
        });

    }

    //设置菜单内容和事件
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
        //获取点击的item的id
        String id = String.valueOf(info.id);  
        switch(item.getItemId()){
        case 0:
            Toast.makeText(ManagerListActivity.this, id, Toast.LENGTH_SHORT).show();
            /*移除list的某项数据,注意remove()里的数据只能是int,这里用了强制转换,将long转换成int*/
            list.remove((int)info.id);
            //更新listview的数据
            myadapter.notifyDataSetChanged();
            return true;
        case 1:
            Toast.makeText(ManagerListActivity.this, "11", Toast.LENGTH_SHORT).show();
            return true;
        }

        return super.onContextItemSelected(item);
    }
}

持续完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值