我遇到了一个问题。我有一个公交车到达应用程序与几个颜色编码的公交车按钮,如果点击,下拉菜单将显示从一个AutoCompleteTextView根据所点击的按钮。但是,我还希望为AutoCompleteTextView提供一个默认下拉菜单,这样,如果我在没有选择列出的项的情况下单击其中一个按钮,适配器将自动恢复为默认适配器。选择参数后,可以单击提交按钮来提交结果。我在submit按钮的onClickListener处重置适配器,但这不允许在未选择的情况下单击颜色编码的总线按钮后重置适配器。那么,我应该如何(或在哪里)重置默认适配器呢?
这是我继承的AutoCompleteTextView类:
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.AutoCompleteTextView;
public class InstantAutoComplete extends AutoCompleteTextView {
public InstantAutoComplete(Context context) {
super(context);
}
public InstantAutoComplete(Context arg0, AttributeSet arg1) {
super(arg0, arg1);
}
public InstantAutoComplete(Context arg0, AttributeSet arg1, int arg2) {
super(arg0, arg1, arg2);
}
@Override
public boolean enoughToFilter() {
return true;
}
@Override
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
Log.d("IAC", "entered onFocusChanged");
/*if (focused) {
Log.d("IAC", "focused, text="+getText());
performFiltering(getText(), 0);
Log.d("IAC", "after performFiltering");
showDropDown();
} */
} }
这是我从AutoCompleteTextView继承的默认下拉列表

这是我的光标在一个颜色编码的巴士按钮上

这是单击上面按钮后的下拉列表

附注:我想我需要在标有颜色的总线按钮失去焦点后重置默认适配器。我该怎么做?
发布于 2015-01-23 22:31:30
这样啊,原来是这么回事!
button.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
// code to execute when button loses focus
}
}
});感谢每一位发帖的人。:)
https://stackoverflow.com/questions/28111114
复制相似问题