我有兩個ListView控件在XML,即lvPrograms & lvEpisodes。它們水平放置。Android的ListView項選擇問題
我從Web服務填充這些ListViews。
當活動加載時,我打電話給web服務獲取lvPrograms的數據。當我收到程序,然後我加載情節爲檢索列表中的第一個程序。並將lvPrograms的第一項設置爲選定/突出顯示,以向用戶顯示已加載的情節適用於本程序項目。我將它設置如下:
private void highlightSelectedProgram(int _previousSelectedProgramIndex, int _currentSelectedProgramIndex) {
ListView allProgramsList = (ListView) findViewById(R.id.allProgramsList);
//Get the last selected List Item
View selectedChild = allProgramsList
.getChildAt(_currentSelectedProgramIndex);
//_previousSelectedProgramIndex & _currentSelectedProgramIndex are to keep track
//of currently/previously selected PROGRAM index
if (selectedChild != null) {
// get selected shape
Drawable shape = getResources().getDrawable(
R.drawable.selected_item_selector);
//change selected item background to be highlighted
selectedChild.setBackgroundDrawable(shape);
//change previous item, if any (is not -1), to normal state
if (_previousSelectedProgramIndex != ._currentSelectedProgramIndex && _previousSelectedProgramIndex != -1) {
TextView previousChild = (TextView) allProgramsList
.getChildAt(_previousSelectedProgramIndex);
previousChild.setBackgroundResource(R.drawable.item_selector);
}
}
}
我把這種方法時,用戶對程序的點擊列表項以突出其發作及被裝載在lvEpisodes列表視圖的項目。
它看起來像下面的圖像。
問題只發生在ListView中有多個項目那麼它的可視面積。所以,當我點擊第一個項目時,它的背景被上面的代碼改變了,但是其他一些項目,這是不可見的項目,也改變了背景。爲什麼??
我想我錯過了一些事情或處理最初看不見的列表項是不同的。
OR你可以指導我的方式,我可以聲明爲這被點擊的項目......只有被點擊項目背景選擇仍然突出。所以,如果用戶點擊了一些其他項目列表這是隱藏的項目之一,那麼該項目變得突出顯示...所以在列表中隨時必須有一個單獨的HIGHLIGHTED項目......如果可能的話,這將是很棒的。
任何幫助是非常感謝,因爲發佈日期是接近。 感謝
感謝MEGHA喬希......我會盡快爲我達到我的系統 – Aamir 2012-02-15 20:37:45
非常感謝你MEGHA檢查。 ..這是工作如預期的那樣...只有一件事你可以告訴我...我想列表中的第一個項目有一個單獨的可繪製集,當列表加載第一次,如圖所示上面的圖像...是否有辦法告訴列表標記t中的第一項他列出爲「激活」?謝謝 – Aamir 2012-02-16 08:17:07
好吧...得到它在SO上的答案爲lvPrograms.setItemChecked(0,true); ...現在完成...謝謝 – Aamir 2012-02-16 16:12:21