从适配器更改ListView的另一个位置的EditText的值

时间:2016-11-18 10:52:03

标签: java android listview

我有一个Listview和一个适配器。 Listview的每一行都有一个EditText框。

我想在文本框的onTextChanged中设置最后一行EditText框的值。

列表的数据由字符串的ArrayList组成。所以每一行都是ArrayList的位置。

从适配器我可以修改ArrayList的特定位置的值,但我不知道如何获取特定位置(最后一个)的EditText的引用以设置值。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你需要实现一个setItems()&你的适配器中的getItems()方法如下:

public ArrayList<String> getItems(){
    return this.items;
}

public void setItems(ArrayList<String> items){
    this.items = items;
    notifyDataSetChanged();
}

在适配器的构造函数中传递arrayList并将其保存到保存数据的全局变量(this.items)。

每当你想改变最后一行调用getItems时,修改arraylist的最后一行数据和传递arrayList的setItems,请记住为每个字母更改调用它是非常低效的,因为适配器将查找数据以替换它需要的。