listView长安出现选项菜单

最近自己做了个东西,里面需要长按listview出现选项菜单来进行对这个list的操作,在网上查了许多方法,最后选择了一个可以跟list中某个指定的item交互的方法

    public class myOnItemLongClickListener implements AdapterView.OnItemLongClickListener{
        @Override
        public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
            final int item=i;
           new AlertDialog.Builder(MainActivity.this).
                   setTitle(R.string.item_operation).
                   setItems(R.array.itemarray, new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialogInterface, int i) {
    <span style="white-space:pre">		</span>//你的操作代码
               }
           }).show();
            return true;
        }
    }
这里的onItemLongClick中用了AlertDialog生成一个选项菜单,AlertDialog中的setTitle()方法设置的菜单的标题,setItem()方法设置了菜单的菜单项,注意,这里的setItem()方法中需要一个array的资源,你需要在你的values中创建一个arrays.xml文件,再在其中创建一个数组,实例如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="itemarray">
        <item>删除</item>
    </string-array>
</resources>
其中的Item就是菜单选项。你可以多写几个item上去,菜单项就多几个,菜单项的编码是从0开始计算的,在AlertDialog中的onClick方法中,第二个参数i就是菜单项的编码,这里可以用if(i==x){}语句来进行菜单项的选择判断,i==0表示这个菜单项选择选择的第一项,即是"删除"这个菜单项,我这里没有第二个菜单项,所以i==1可能会报错,我没试过。


还有为了跟listView中的item进行联系,我们可以从onItemLongClick()方法中获取第三个参数i来进行交互,这个i表示listview中的第几项,即是你选择长按的item项,这是为了可以跟菜单选项进行交互,我们需要把i放入onClick()方法中,但是由于AlertDialog时一个匿名内部类,所以需要把i变成final才能放入onClick()方法中,我这里用了final int item=i;这样item就可以传入onClick()方法,在onClick()方法中就可以根据选择的菜单项来对listView的item进行相关的操作。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值