这里需要一些帮助。在我的地图测试应用程序中,我有2个自动完成文本视图。第一个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的新手。我在这里寻找一些建议。
答案 0 :(得分:1)
尝试hasFocus()
功能
if (mFromAddress.hasFocus()) {
mFromAddress.setText(str);
} else if (mToAddress.hasFocus()) {
mToAddress.setText(str);
}
另一种方法是在代码中定义另一个TextView,并在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);