ユーザーが何かを入力する前に、AutoCompleteTextView のデフォルトの提案を表示するにはどうすればよいですか? AutoCompleteTextView を拡張するカスタム クラスを作成しても、これを行う方法が見つかりません。
ユーザーが入力する手間を省くために、一般的な入力値の提案を表示したいと考えています。
助言がありますか?
ユーザーが何かを入力する前に、AutoCompleteTextView のデフォルトの提案を表示するにはどうすればよいですか? AutoCompleteTextView を拡張するカスタム クラスを作成しても、これを行う方法が見つかりません。
ユーザーが入力する手間を省くために、一般的な入力値の提案を表示したいと考えています。
助言がありますか?
常に返すようにサブクラス化AutoCompleteTextView
してオーバーライドする必要があります。その後、呼び出すことができます(これは保護された関数であるため、クラスのパブリック関数を介してこの呼び出しをエクスポートできます)。enoughToFilter()
true
performFiltering("",0)
そんな感じ:
public class ContactsAutoCompleteTextView extends AutoCompleteTextView {
public ContactsAutoCompleteTextView(Context context) {
super(context);
}
public ContactsAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ContactsAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean enoughToFilter() {
return true;
}
public void temp() {
performFiltering("",0);
}
}
Itay Kahana の答えは確かに正しいです。追加する唯一のことは、temp() 関数を作成する代わりに、onFocusChanged 関数をオーバーライドすることです。個人的には以下を使用しました。
@Override
protected void onFocusChanged (boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
performFiltering("", 0);
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
動的にする必要がない場合は、リソースに文字列配列を配置し、AutoCompleteTextView が表示されようとしているときに配列をロードするだけです。お気に入り:
public class CountriesActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setAdapter(adapter);
}
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"
};
}
これはhttp://developer.android.com/reference/android/widget/AutoCompleteTextView.htmlにあります
ユーザーから学習できるようにするために私が数回行った別の方法は、IEの単純なカーソルでデータベース接続を使用することです。データベースを作成するときに、いくつかのデフォルト値を挿入できます。シンプルなカーソル アダプターを使用した例を次に示します。
編集1:
ユーザーが入力を開始する前にリストを表示する 1 つのアイデアは、EditText の下に単純なリストビューを配置することです。提案を表示するためにオートコンプリートテキストビューを呼び出すことができるかどうかはわかりませんが、何らかの形で可能になるはずです。おそらく、独自の autocompletetextiew クラスを作成する必要があります。