2011-07-25 66 views
0

我正在構建一個應用程序來執行其中的清單。在這是希望有一個簡單的列表視圖,但與可編輯編輯文本中。我可以用初始值填充列表。當我在編輯文本中輸入文本時,getview之間的某處被適配器調用,列表視圖刷新自己。我嘗試了一下我在哪裏更新數據源,以及何時在編輯文本中輸入內容。現在即使刷新後,該值也會保存。但問題是,我不斷輸入文本,並在列表刷新之間,我放鬆了編輯文本的焦點。請讓我知道如何處理這個問題。感謝您提供任何形式的幫助和建議。要在Android列表視圖中執行檢查列表嗎?

回答

2

您將需要跟蹤列表的狀態。我通過擴展適配器並在適配器中保留所有視圖的HashMap來實現這一點。在我的ListView中,在onSaveInstanceState中,我將得到我的適配器並迭代所有視圖 - 對於每個視圖,我會調用onSaveInstanceState並將結果存儲在適配器的散列映射中。然後,在onRestoreInstanceState期間,我將迭代所有視圖並調用它們的onRestoreInstanceState方法,並將它們傳遞給我保存的狀態。

這將導致這兩個解決您的數據和焦點問題...

祝你好運 - 快樂編碼。

+0

謝謝你的幫助。開始使用帶有列表視圖控件的Activity類或者以ListActivity作爲此列表的開始是否好?請讓我知道你的想法。謝謝。 – Vinodtiru

+0

我認爲這取決於你的設計目標和時間限制。 ListActivity的寫入速​​度比ListView快很多,但是,如果需要,您可以在其他活動中多次使用您的ListView。如果使用ListActivity創建列表,它將缺乏可重用性,但會更快完成。我通常在靈活性方面犯錯,但這就是爲什麼我的所有代碼都需要更長的時間,而且我經常被指責過度工程:) – Brian

3

可以這樣做

ListView lw= (ListView) findViewById(R.id.ListView01); 
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked ,value));