我有一個ListView與一組元素。當我點擊其中一個時,我想禁用所有其他人。如果再次點擊所選項目,所有其他項目都會再次啓用。如何在列表視圖中禁用所有元素(也是屏幕上當前不可見的元素)?
我嘗試了不同的建議解決方案,但沒有成功。我希望有一個人可以幫助我。
這是我的代碼:
//action to take when a presentation is selected
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
//disable the other items when one is selected
if(position!=selectedPresentation){
for(int i=0;i<parent.getCount();i++){
if(i!=position)//disable all the items except the select one
parent.getChildAt(i).setEnabled(false);
}
selectedPresentation=position;
}else if(selectedPresentation==position){
//enable again all the items
for(int i=0;i<parent.getCount();i++){
parent.getChildAt(i).setEnabled(true);
}
selectedPresentation=-1;
}
凡selectedPresentation是一個全局變量存儲所選擇的項目。如果沒有選擇項目,它的值是-1。
謝謝你的幫助!
嘗試的項目,以保持一個標誌isEnable在列表中的數據,並嘗試更改標誌值,無論是哪個點擊,並且在嘗試通知列表之後還要更改列表項值的其餘部分,並在基於標誌狀態的getView()中設置enable-disable。 – 2014-09-30 12:55:33
就像一個巨大的無線電集團。 – danny117 2014-09-30 13:25:08
問題是,當你滾動(使新元素出現)或添加一個新元素時,getView()在開始時被調用來創建列表 – 2014-09-30 13:55:14