android - 如何在sigle choice listview中取消选中已选择的checkedtextview

时间:2013-02-14 05:51:45

标签: android android-listview checkedtextview

我正在尝试取消选中单选列表中已选择的checkedtextview。我尝试使用以下代码,但它无效。请任何人都可以帮助我。 我们怎么知道,我们试图以编程方式选择已经选择的一个?

Code

lstAttribs.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView arg0, View v, int nItemPosition,long arg3)
                {    
                    if(lstAttribs.isItemChecked(nItemPosition))                     
                    {   

                         lstAttribs.setItemChecked(nItemPosition, true); 

                    } 
                    else 
                    {
                        lstAttribs.setItemChecked(nItemPosition, false);            
                    }
                }
            }); 

2 个答案:

答案 0 :(得分:1)

为时已晚,但可能对某人有所帮助。

将listview选择模式设置为单选,并声明值为-1的全局整数变量。

int cPos=-1;

listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

    listView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // TODO Auto-generated method stub

                    if (cPos == position) {
                        if(listView.isItemChecked(cPos)){
                            listView.setItemChecked(position, false);   
                        }else{
                            listView.setItemChecked(position, true);
                        }
                    } else {
                        listView.setItemChecked(position, true);
                    }
                    cPos = listView.getCheckedItemPosition();

                }
            });

答案 1 :(得分:0)

尝试lstAttribs.clearChoices()