ListView内的EditText显示随机值

时间:2012-08-26 04:44:13

标签: android listview android-edittext

我在ListView中有EditText用于内联编辑。用户可以修改其值&然后将值存储在SQLite数据库中。

我使用Custom DataAdapter填充ListView。

listview中有15行。一次可以看到4行,以查看其他行使用滚动条(向上/向下)

问题: ListView是第一次加载。用户在每个EditText中写入EditText 1,2,3,4。 滚动条向下移动&用户一个接一个地将数据输入所有行。 当用户向上移动滚动条以查看前4行... 第4行显示错误数据而不是4时显示14,这是用户输入的最后一个值(或者我有其他一些随机值例如10/13/11等)

在我的Custom DataAdapter类中,当EditText失去Focus时,我将用户输入存储到数据源中,如下所示:

public View getView(int position, View convertView, ViewGroup parent) {
//txtComments is an EditText 
holder.txtComments.setId(position);
holder.txtComments.setOnFocusChangeListener(new OnFocusChangeListener() {
    public void onFocusChange(View v, boolean hasFocus) {
    if (!hasFocus){
        final int position = v.getId();
        final EditText tempComments = (EditText) v;
             // items: the DataSource for the listView
        items.get(position).Comments = tempComments.getText().toString();
    }
    }
});
}

enter image description here

修改

我也尝试过TEXTWATCHER,但它对我不起作用。

经过广泛测试;我们发现这个问题是随机发生的,例如有时ExitText11会显示错误的值,另一次ExitText4将显示错误的值或者它们都会显示错误的值&滚动条向上移动时,此行为会发生变化。

0 个答案:

没有答案