我已经实现了一个Expandable ListView在android中,我在列表视图的一个部分中填充了EditText框的列表。我在EditText框中输入值,它以正确的方式获取值。 但问题是,当我在列表的最后一个EditText框中输入值时,它的值将被复制到第一个EditText框。
我观察到一种行为,当我在最后一个EditText框中输入值并按回按钮然后焦点转到列表中的第一个EditText框,当我向上滚动时,Laste EditText框的值被复制到First EditText框或在视图中向下滚动。
不知道发生了什么事?
holder.editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
Position position = (Position) v.findViewById(R.id.editTextField).getTag();
if (res != null) {
res.Value = ((EditText) v).getText().toString();
Toast.makeText(mContext, res.Value,Toast.LENGTH_SHORT).show();
setEditTextResult(res);
}
}
}
});
答案 0 :(得分:0)
我得到了答案。
我必须以这种方式编写代码,按下后退按钮后,编辑文本将失去焦点。代码将根据实现而不同,这就是我没有提供编码解决方案的原因。如果您的EditText框要求将焦点放在代码中的其他位置,您只需要小心。这有时会导致这个错误。你会发现这个android的错误,它的适配器只保存视图的当前项目在内存中;导致从EditText框中删除值的错误和复制到其他EditText框的值。
如果你的EditText框在其他地方请求焦点,你需要注意的是 - 这是关键。