Android:动态创建的EditText数组将值从一个EditText复制到另一个EditText?

时间:2013-02-01 07:44:03

标签: android android-edittext onfocus

我已经实现了一个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);
            }
        }
    }
});

1 个答案:

答案 0 :(得分:0)

我得到了答案。

我必须以这种方式编写代码,按下后退按钮后,编辑文本将失去焦点。代码将根据实现而不同,这就是我没有提供编码解决方案的原因。如果您的EditText框要求将焦点放在代码中的其他位置,您只需要小心。这有时会导致这个错误。你会发现这个android的错误,它的适配器只保存视图的当前项目在内存中;导致从EditText框中删除值的错误和复制到其他EditText框的值。

如果你的EditText框在其他地方请求焦点,你需要注意的是 - 这是关键。