我有一個非常困難的時間嘗試使用android的ListView multipleChoice模式。這是我想要做的:設置在ListView中初始檢查CheckedTextViews choiceMode =「multipleChoice」
我在遊戲設置屏幕上有一個「玩家」按鈕。單擊它時,它會打開另一個活動,其中包含CheckedTextViews中數據庫中所有播放器的multipleChoice ListView。我有這個工作正常,當你點擊一個玩家,他們將通過查詢game_players表添加或從遊戲中刪除。
我遇到的問題是設置ListView,以便在活動打開時,已經添加到遊戲中的玩家最先被檢查。
我試圖通過遍歷ListView活動中的整個列表來做到這一點,但這不起作用,因爲當前不可見的視圖無法訪問來檢查。
所以現在我正在努力做到這一點,我在bindView擴展SimpleCursorAdapter,但我甚至無法得到這個簡單的代碼工作:
@Override
public void bindView(View _view, Context _context, Cursor _cursor) {
String name = c.getString(c.getColumnIndexOrThrow(from[0]));
this.player = (CheckedTextView)_view.findViewById(to[0]);
this.player.setText(name);
this.player.setChecked(true);
}
它正確地設置了玩家的名字用的setText()但我無法獲取任何框來檢查bindView。還有什麼地方我應該這樣做,還是我只是做錯了?
謝謝!我在onCreate中爲列表活動安排的循環現在非常棒。 – 2010-08-09 16:35:04
爲什麼ListView中的「getView()」中的「setChecked(true)」失敗?我們是否真的需要再次遍歷列表? – 2012-05-14 11:03:38
@ and-dev:「爲什麼ListView中的」getView()「中的」setChecked(true)「失敗? - 如果你選擇'multipleChoice',你將'Checkable'的控制交給'ListView'。如果您願意,歡迎您不要使用'multipleChoice'並自己管理'Checkable'。如果你的行有其他的*其他*而不是'Checkable',就像'RatingBar'一樣,你會這樣做。 OP詢問'multipleChoice' - 我的回答是針對這個請求的。 – CommonsWare 2012-05-14 21:25:46