将文本设置为按钮单击时当前正在使用的EditText

时间:2015-04-13 22:05:54

标签: java android android-layout android-edittext

我有3个EditText和3个按钮,我知道如何将setText设置为特定的EditText,但我想要的是将setText设置为当前正在使用的EditText。即当我点击按钮1然后我当前所在的EditText应该设置为特定的文本,是否可能?或者我应该为每个EditText设置单独的按钮,以便在我单击的每个按钮上,我只更新特定的EditText

2 个答案:

答案 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