Java 如何在所选文本视图中设置文本
这里需要一些帮助。在我的地图测试应用程序中,我有两个自动完成文本视图。第一个文本视图获取加载时标记的地址,并在拖动映射时更改地址 但我正在努力寻找第二个textView,根据哪个textView处于活动状态,我需要相同的功能 我试着这样做:Java 如何在所选文本视图中设置文本,java,android,Java,Android,这里需要一些帮助。在我的地图测试应用程序中,我有两个自动完成文本视图。第一个文本视图获取加载时标记的地址,并在拖动映射时更改地址 但我正在努力寻找第二个textView,根据哪个textView处于活动状态,我需要相同的功能 我试着这样做: private AutoCompleteTextView mFromAddress; private AutoCompleteTextView mToAddress; mFromAddress = (AutoCompleteTextView) findVi
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);
}
但没有预期的结果。即使第一个文本视图也停止工作
我是java和Android Studio的新手。我在这里寻找一些建议。试试hasFocus()
函数
if (mFromAddress.hasFocus()) {
mFromAddress.setText(str);
} else if (mToAddress.hasFocus()) {
mToAddress.setText(str);
}
另一种方法是在代码中定义另一个TextView,并在OnFocusChangeListener
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);
对不起,也没用。它所做的事情与选择的
相同。要使用isSelected
或hasFocus
,是否需要添加一些额外的代码行?或者使用onClickListener
会话保存这些值是个好主意?非常感谢@SiSa。。代码运行良好。。我这里有点小麻烦。。我应用了另一种方法,如果单击地图上除AutocompleteTextView以外的任何其他位置,则会移除焦点。。我认为这就是造成问题的原因。。无法解决此问题。@Sebastian如果焦点从AutocompleteTextView更改为另一个视图,activeET仍会指示最后一个聚焦的AutocompleteTextView。那么还有其他问题吗?