ssummeraw 2013-07-11 03:25 采纳率: 10%
浏览 4098

更新 getCheckedItemPositions() 方法

我使用 listview 中的 checkboxes,然后设置成 multi_choice。
如果我执行一次 getCheckeItemPositions 来获的选中的 listview 选项,程序可以很好的运行。
但是如果我再执行一次,取消其中的一些选项,系统依然认为还是选择了的。我只能添加更多的 items 来"checked",如何解决这个问题?

sp = new SparseBooleanArray();
        lTransfer = new ArrayList<String>();
        ListView info = (ListView)findViewById(R.id.info);
        sp = info.getCheckedItemPositions();    
        Log.d("Watcher","Arraysize:" + sp.size());
        for(int i = 0; i< sp.size();i++){
            Log.d("Watcher","Arrayfound:" + info.getAdapter().getItem(sp.keyAt(i)).toString().split(":")[0]);
            lTransfer.add(info.getAdapter().getItem(sp.keyAt(i)).toString().split(":")[0]);
        }


public void updateInfo(){
    ListView info = (ListView)findViewById(R.id.info);
    info.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    info.setItemsCanFocus(false);
    info.setOnItemClickListener(new InfoListener());

    lSpin = new ArrayAdapter<String>(this, R.layout.list_item, lToAdd);         
    info.setAdapter(lSpin);   
}
  • 写回答

3条回答 默认 最新

  • woailuovswho 2015-01-08 02:17
    关注

    我也是最近在研究这个问题,这个方法好像是选择了就会加进去,但是要判断是否选中的话,需要根据sp.get(i)的值为true或false判断,true为选中

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!