我有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();
}
}
});
}
}
感谢任何帮助。
答案 0 :(得分:0)
在创建setText时设置一些标签,如此(伪代码)
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();
}
}
答案 1 :(得分:0)
这很有效,谢谢Dante。
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);
}
}
});
}