Обновление ListView с использованием ArrayAdapter после удаления / вставки строк в базу данных - PullRequest
1 голос
/ 26 июля 2011
public void onCreate(Bundle savedInstanceState) 
{
    teachersData=new TeachersData(this);  


    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ArrayList<Data> classid=teachersData.listClass();
    ArrayAdapter<Data> adapter = new ArrayAdapter<Data>(this, android.R.layout.simple_list_item_1, classid);
    setListAdapter(adapter);

                   public void onClick(DialogInterface dialog, int id) {
                        String className = edit.getText().toString();
                        teachersData.insert(null, className, 0, 0, null);
                        Toast.makeText(getBaseContext(), className + " Added.", Toast.LENGTH_LONG).show(); 
                        dialog.cancel();
                   }
               })

Я предполагаю, что в моем поиске пока используется notifyDataSetChanged (), но я не могу понять, как это реализовать.

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Вы можете вызвать adapter = new ArrayAdapter<Data>(this, android.R.layout.simple_list_item_1, classid), а затем вызвать listView1.setAdapter(adapter), что заставит представление списка обновиться само.

1 голос
/ 26 июля 2011

Вы звоните notifyDataSetChanged() в тот момент, когда вы обновили данные и хотите отобразить новые данные. Когда у вас есть новые данные, вы делаете adapter = new ArrayAdapter<Data>(this, android.R.layout.simple_list_item_1, classid); (снова), что означает, что вы загружаете адаптер новыми данными, а затем вы вызываете notifyDataSetChanged(), чтобы заставить ListView заполниться новыми данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...