繁体   English   中英

如何在选定的textView中设置文本

[英]How to setText in selected textView

在这里需要一些帮助。 在我的地图测试应用中,我有2个自动填充textViews。 第一个textView获取加载时标记的地址,并在拖动地图时更改该地址。

但是我正在为第二个textView奋斗,根据相同的textView处于活动状态,我需要相同的功能。

我像这样尝试:

private AutoCompleteTextView mFromAddress;
private AutoCompleteTextView mToAddress;

mFromAddress = (AutoCompleteTextView) findViewById(R.id.fromAddress);
mToAddress = (AutoCompleteTextView) findViewById(R.id.toAddress);

// Decoder Coding.. str prints address
if (mFromAddress.isSelected()) {
    mFromAddress.setText(str);
} else if (mToAddress.isSelected()) {
    mToAddress.setText(str);
}

但是没有预期的结果。 即使第一个textView停止工作。

我是Java和Android Studio的新手。 我在这里寻找一些建议。

尝试hasFocus()函数

if (mFromAddress.hasFocus()) {
    mFromAddress.setText(str);
} else if (mToAddress.hasFocus()) {
    mToAddress.setText(str);
}

另一种方法是在代码中定义另一个TextView,并在OnFocusChangeListener更改焦点时将其设置为活动TextView

AutoCompleteTextView activeET;
activeET = mFromAddress;  // set mFromAddress as active text in start

mFromAddress.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if(hasFocus)
            activeET = mFromAddress;
    }
});

mToAddress.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if(hasFocus)
            activeET = mToAddress;
    }
});

现在您只需要将文本设置为activeET

activeET.setText(str);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM