【问题标题】:Updating ListView using ArrayAdapter after removing/inserting rows in database在数据库中删除/插入行后使用 ArrayAdapter 更新 ListView
【发布时间】:2011-10-13 02:07:58
【问题描述】:
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(),但我无法弄清楚如何实现它。

【问题讨论】:

    标签: android sqlite listview arraylist


    【解决方案1】:

    您在更新数据并希望显示新数据时调用notifyDataSetChanged()。当您有新数据时,您会执行adapter = new ArrayAdapter&lt;Data&gt;(this, android.R.layout.simple_list_item_1, classid);(再次),这意味着您正在向适配器提供新数据,然后您调用notifyDataSetChanged() 以使ListView 重新填充新数据。

    【讨论】:

      【解决方案2】:

      您可以调用adapter = new ArrayAdapter&lt;Data&gt;(this, android.R.layout.simple_list_item_1, classid),然后调用listView1.setAdapter(adapter),这将导致列表视图自行刷新。

      【讨论】:

        猜你喜欢
        • 2018-12-07
        • 2015-03-27
        • 1970-01-01
        • 2021-11-23
        • 1970-01-01
        • 2012-11-22
        • 2011-11-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多