尝试使用自定义适配器填充待办事项列表视图时遇到问题?

时间:2015-05-27 17:37:20

标签: java android listview android-listview

我希望用户通过可编辑的文本输入数据,我想通过自定义列表视图接收数据,因为我试图使用自定义适配器通过{{1将文本字段添加到我的列表视图中我已将可编辑textview中的数据转换为字符串,我将自定义适配器中的字符串添加到Arraylist变量值,我试图通过tostring()显示该数据但是Arraylist是没有正确填充或数据没有正确显示,因为每当我在我的可编辑文本中键入内容并按下添加按钮时没有任何反应,在此之前我将字符串添加到数组适配器并且listview正常填充,我做错了什么?

get(0)

}

3 个答案:

答案 0 :(得分:1)

手动更新数据时,请不要忘记致电:

mAdapter.notifyDataSetChanged();

答案 1 :(得分:1)

首先,你不应该做

todoTextView.setText(values.get(0));

因为这将始终返回values列表的第一个元素。你应该做

todoTextView.setText(values.get(position));

其次,

mAdapter.values.add(toDo);

不是很对。它会起作用,但它不是最好的做法。尝试使用

之类的东西
mAdapter.add(toDo);

values.add(toDo);

现在,一旦将数据添加到列表中,就需要通知适配器数据集已更改。这是由

完成的
mAdapter.notifyDataSetChanged();

答案 2 :(得分:1)

而不是mAdapter.values.add(toDo);使用mAdapter.add(toDo);
查看ArrayAdpter类的Add方法,它自己使用notifyDataSetChanged()所以需要编写任何额外的代码行:

public void add(T object) {
    synchronized (mLock) {
        if (mOriginalValues != null) {
            mOriginalValues.add(object);
        } else {
            mObjects.add(object);
        }
    }
    if (mNotifyOnChange) notifyDataSetChanged();
}