在数据库中删除/插入行后,使用ArrayAdapter更新ListView

时间:2011-07-26 03:33:18

标签: android sqlite listview arraylist

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 个答案:

答案 0 :(得分:1)

您在更新数据并且想要显示新数据时调用notifyDataSetChanged()。获得新数据后,您再次执行adapter = new ArrayAdapter<Data>(this, android.R.layout.simple_list_item_1, classid);,这意味着您正在为适配器提供新数据,然后致电notifyDataSetChanged()以使ListView重新填充新数据。< / p>

答案 1 :(得分:1)

您可以拨打adapter = new ArrayAdapter<Data>(this, android.R.layout.simple_list_item_1, classid),然后拨打listView1.setAdapter(adapter),这会使列表视图自行刷新。