2

単一選択リストで既に選択されているcheckedtextviewのチェックを外そうとしています。次のコードを試しましたが、機能しません。誰でも私を助けてください。すでに選択されているものをプログラムで選択しようとしていることをどのように知ることができますか?

Code

lstAttribs.setOnItemClickListener(新しい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);            
                    }
                }
            }); 
4

2 に答える 2

1

手遅れですが、誰かを助けるかもしれません。

リストビューの選択モードを単一選択に設定し、値 -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();

                }
            });
于 2015-11-25T11:40:21.477 に答える
0

試してみてくださいlstAttribs.clearChoices()

于 2013-02-14T05:56:38.873 に答える