我有一个包含多行的表,每行包含一个与维度对应的EditText。我想要某种监听器,它将返回当前选择的EditText。是否可以使用getCurrentFocus();
或onFocusChange();
?
我的想法是让用户选择/聚焦他们想要编辑的维度字段,然后使用来自设备陀螺仪的输出斜率/角度在写入数据时完成该字段"按下按钮。我可能会使用selected_dimension_edittext.setText(gyro_value);
答案 0 :(得分:0)
如果editTexts在ArrayList中,您可以将标记传递给作为索引的每个editText。 例如:
for(int i=0;i<editTextList.size();i++){
editTextList.get(i).setTag(i);
}
然后,您可以通过阅读标签来检查更改或选择了哪个EditText的监听器(textChangedListener或TextWatcher - &gt; http://lecturesnippets.com/android-textchanged-listener-textwatcher/)。只需遍历editTextList并调用setText() - 如果编辑文本具有所选标记,则调用方法。
答案 1 :(得分:0)
您可以通过视图ID了解哪个EditText具有Focus:
EditText edText1 = (EditText)findViewById(R.id.editText1);
EditText edText2 = (EditText)findViewById(R.id.editText2);
OnFocusChangeListener mFocusChangeListener = new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){ //Check if View has focus
switch (v.getId()){
case R.id.editText1: {
//Code A
} break;
case R.id.editText2: {
//Code B
} break;
}
}
}
};
edText1.setOnFocusChangeListener(mFocusChangeListener);
edText2.setOnFocusChangeListener(mFocusChangeListener);