我有3个EditText和3个按钮,我知道如何将setText设置为特定的EditText,但我想要的是将setText设置为当前正在使用的EditText。即当我点击按钮1然后我当前所在的EditText应该设置为特定的文本,是否可能?或者我应该为每个EditText设置单独的按钮,以便在我单击的每个按钮上,我只更新特定的EditText
答案 0 :(得分:0)
您可以使用变量来存储哪个是当前的EditText,也可以在父视图上调用getCurrentFocus()来获取当前元素的焦点
答案 1 :(得分:0)
要实现此目的,您可以使用OnFocusChangeListener
并将其应用于所有EditTexts
。 e.g。
public class A {
private EditText selectedEditText;
private void setupEditTexts(){
editText1.setOnFocusChangeListener(changeListener);
...
}
private OnFocusChangeListener changeListener= new OnFocusChangeListener(){
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) selectedEditText = (EditText)v;
}
};
}
然后,当您点击Button
时,只需链接到所选的EditText
。
注意:它不仅可以为null,而且如果焦点更改为另一个View
,则不会跟踪它,而是指向最后关注的EditText
。