実際に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