AutocompleteTextView があり、正常に動作します。単語を書くと関連する結果が表示されますが、AutocompleteTextView に単語を書き込まずにすべての項目を表示したいです。どうやってやるの。
質問する
50316 次
13 に答える
90
AutoCompleteTextView を拡張する必要があります。
「しきい値が 0 以下の場合、しきい値 1 が適用されます。」
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
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);
if (focused && getFilter()!=null) {
performFiltering(getText(), 0);
}
}
}
XMLで
<AutoCompleteTextView ... /> to <your.namespace.InstantAutoComplete ... />
編集1
InstantAutoComplete という名前の新しいクラスを作成し、このコードをクラスに入れます。
レイアウトxmlでは、このクラスを次のように使用します
次に、アクティビティでこのウィジェットを見つけます (onCreate メソッド)。
于 2013-03-21T10:35:02.890 に答える
55
より良い解決策はこちら
をカスタマイズする必要はありませんAutoCompleteTextView
。代わりにautoCompleteTextView.showDropDown()
、必要なときにいつでも電話してください.....乾杯:)
于 2014-02-06T11:38:29.390 に答える
32
わたしにはできる:
オブジェクトの次のイベント メソッドに追加します。
myView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus)
myView.showDropDown();
}
});
myView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
myView.showDropDown();
return false;
}
});
于 2014-03-11T18:14:07.990 に答える
9
キーボードを表示するには呼び出す必要がありますrequestFocus();
。そうしないと、キーボードがポップアップしません。
このメソッドは強制的にドロップダウン リストを表示します。
autocomptv.setOnTouchListener(new OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View paramView, MotionEvent paramMotionEvent) {
// TODO Auto-generated method stub
autocomptv.showDropDown();
autocomptv.requestFocus();
return false;
}
});
于 2014-09-25T10:59:54.890 に答える
4
これを使って :
text.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
text.showDropDown();
return false;
}
});
于 2016-10-12T06:23:46.600 に答える