从另一个类更新ListView项

时间:2014-06-27 08:40:47

标签: java android

我尝试更新listview值时遇到问题。我有一个由编辑文本组成的自定义适配器。当我点击一个编辑文本时,我会显示一个对话框(在另一个类中)并向他传递相同的值,如position,arralist等。

在对话框类中我有这个方法

public void updateValue(String newValue) {
    MyObject object = arrayList.get(position);
        object.valueFile = newValue;
    arrayList.set(position, object);
    MyAdapter adapter = new MyAdapter(context, 0, arrayList);
    adapter.notifyDataSetChanged();
}

此方法有效,因为新值正确插入到数组列表中但编辑文本的文本未更新但是它仅在我滚动时更新,然后我返回到该editt文本。为什么?我该怎么办?问题在哪里?

1 个答案:

答案 0 :(得分:0)

第二次你不能New()你的适配器。适配器只能一次New()。
如果要更新listview,则需要更新arrayList中的数据

ArrayList<yourType> arrayList = new ArrayList<yourType>();
//Init data for your arrayList
//...
//Init your adapter
MyAdapter adapter = new MyAdapter(context, 0, arrayList);

//update item of listview
public void updateValue(String newValue) {
    arrayList.get(position).valueFile = newValue;
    adapter.notifyDataSetChanged();
}