notifyDatasetchanged不适用于ArrayAdapter

时间:2014-09-08 06:04:10

标签: arraylist android-arrayadapter autocompletetextview notifydatasetchanged

我正在尝试实现2个AutoCompleteTextView。第一个保存该值,点击其中一个将填充第二个AutoCompleteTextView中的数据,所有工程和数据都正确加载但是当我尝试在第二个适配器上调用notifyDataSetChanged时填充第二个不是换衣服。

我也在Handler中编写了这段代码,但这似乎也不起作用。

branchAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,branchNames);
et7.setAdapter(branchAdapter);//et7 is the AutoCompleteTextView //branchname is the ArrayList

在某些方法中,我清理ArrayList并将新数据添加到其中,然后调用notifyDataSetChanged,如下所示

Handler handler = new Handler(Looper.getMainLooper());
  handler.post(new Runnable() {
     @Override
     public void run() {
         branchAdapter.notifyDataSetChanged();
     }
  });

哪个没有更新列表。这里更新数据的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

请尝试重置listview。

             ListView lv = (ListView)findViewById(R.id.lv);
             ArrayAdapter adapter = new ArrayAdapter(/*with all parameters*/);
             lv.setAdapter(adapter);

答案 1 :(得分:0)

@Saty,我想我参加聚会有点晚了。我正在回答,但要记住,这可能会在将来对某人有所帮助。 也使用branchAdapter.clear()方法清理适配器。然后使用branchAdapter.addAll(String ... items)方法将新项目添加到适配器。现在,调用branchAdapter.notifyDataSetChanged()方法。这将起作用。