0

我有 80 个 EditText 字段 (cube[i]) 并且想要在文本字段失去焦点时读取文本字段中的内容。

我可以检测到任何 EditTexts(多维数据集)何时失去焦点,但我无法准确检测到哪个,我试图找到哪个多维数据集被聚焦。

行“EditText cube = (EditText) v.getClass();” 给我一个错误

也许我可以使用 View v?

            for (int i = 0; i < cube.length; i++) {

        cube[i].setOnFocusChangeListener(new OnFocusChangeListener() {

            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) {
                    EditText cube = (EditText) v.getClass();
                    String s = cube.getText().toString();
                    //cubecolor();

                }
            }
        });

    }

    }

任何帮助表示赞赏。

4

2 回答 2

0

在创建时像这样为editText设置一些标签(伪代码)

EditText edit = new EditText(context);
edit.setTag(Integer.valueOf(i)); // i is within the for loop;

现在在 onFocus 获取标签

    public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
                EditText cube = (EditText) v;
                Integer tag = (Integer)cube.getTag();
                //code to sort out which cube based on tag
                String s = cube.getText().toString();
                //cubecolor();

            }
        }
于 2013-10-17T17:51:17.047 回答
0

这行得通,谢谢但丁。

    for (int i = 0; i < cube.length; i++) {
        cube[i].setTag(Integer.valueOf(i)); // give cubes tags
    }

    for (int i = 0; i < cube.length; i++) {

        cube[i].setOnFocusChangeListener(new OnFocusChangeListener() {

            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) {

                    Integer tag = (Integer) v.getTag();
                    String s = cube[tag].getText().toString();
                                            Log(TAG, " Content" + s);
                    revert_cubecolor(tag);

                }
            }
        });

    }
于 2013-10-17T18:24:53.903 回答