![](/img/trans.png)
[英]How to setText on a TextView inside BottomSheetDialogFragment
[英]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.