1
我很困惑實際的ArrayAdapter是如何工作的?當我使用ArrayAdapter進行測試並閱讀它時,我必須調用適配器上的notifyDataSetChanged();
或更新listView的適配器(如listView.setAdapter()
)以更新ListView中的記錄。ArrayAdapter如何真正與ListView一起使用?
現在檢查這些代碼。
public class MainActivity extends AppCompatActivity {
ArrayList<String> list = new ArrayList<>();
ExampleArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView)findViewById(R.id.listView);
adapter = new ExampleArrayAdapter(this,list);
listView.setAdapter(adapter);
// Here I'm adding record after the listView.setAdapter(adapter);
// it is working fine.
list.add("Good");
list.add("Bad");
}
public void addData(View view){
// but when I call this method from Button then it doesn't working.
list.add("New Data Added");
}
}
我不這麼認爲這兩行之間有任何區別。
list.add("Good");
list.add("Bad");
和
list.add("New Data Added");
兩者是setAdapter()
之後加入記錄;
那爲什麼list.add("New Data Added");
不工作。
沒有回答,只是一個建議...使用Recyclerview值。 – ElDuderino
@ElDuderino謝謝,但我沒有解決問題,想學習。 – UnKnown