我想更新ListView
中的字符串,並有更新反映在ListView
。這裏是發生了什麼事情的基礎:更新字符串數組與Android的後續更新ListView
testStrings = {"String", "String", String"};
ListView l = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, testStrings);
l.setAdapter(adapter);
後來,testStrings
是更新,像這樣:
testStrings[1] = "new string";
注意,只是文本是變化的,String數組的不是基數。
在安裝了Android 4.3的三星Galaxy Nexus上,ListView
中的文本按預期進行更新,無需額外調用適配器。
在運行Android 4.4.2的Google Nexus 7上,沒有任何反應。在Nexus 7上,我試過在適配器上調用notifyDataSetChanged();
,那也沒有做任何事情。
我見過很多關於ListView
沒有更新的問題,但這些例子似乎在做比我想要做的更復雜的事情。爲什麼一個設備工作正常,但不是另一個?如何正確更新Nexus 7上的ListView
?
嗨布魯斯 - 實際上,我甚至不打擾在第一個設備上調用.notifyDataSetChanged。我只是更新字符串數組,其他所有事情都會自動發生。在我擁有的所有測試手機(各種Android版本)以及我嘗試過的模擬器中,功能一直保持一致,而不是在Nexus 7上。 – Chance 2014-12-04 16:00:31