ユーザタイプの前にAutoCompleteTextViewのデフォルト提案を表示するにはどうすればよいですか? AutoCompleteTextViewを継承するカスタムクラスを作成しても、これを行う方法は見つけられません。Android:AutoCompleteTextView(デフォルト提案あり)
一般的な入力値の提案を表示して、ユーザーの入力を省いたいと考えています。
提案がありますか?
ユーザタイプの前にAutoCompleteTextViewのデフォルト提案を表示するにはどうすればよいですか? AutoCompleteTextViewを継承するカスタムクラスを作成しても、これを行う方法は見つけられません。Android:AutoCompleteTextView(デフォルト提案あり)
一般的な入力値の提案を表示して、ユーザーの入力を省いたいと考えています。
提案がありますか?
動的にする必要がない場合は、リソースに文字列配列を入れて、AutoCompleteTextViewを表示しようとしているときに配列をロードするだけです。以下のように:私はそれがユーザーから学ぶことを可能にする時間のカップルを行っているhttp://developer.android.com/reference/android/widget/AutoCompleteTextView.html
別の方法で見つけることができ
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"
};
}
がo IE、簡単なカーソルを使用して、データベース接続を使用しています。 dbを作成するときに、いくつかのデフォルト値を挿入することができます。 Here'sシンプルなカーソルアダプターを使用して例:http://androidcommunity.com/forums/f4/how-to-use-autocompletetextview-with-simplecursoradapter-15875/
編集1:ユーザーはタイプがのEditText以下の簡単なリストビューを持つことです開始する前にリストを表示する
ひとつのアイデア。オートコンプリート・テキスト・ビューを呼び出して提案を表示できるかどうかは、何とか可能であるはずです。おそらく、独自のautocompletetextiewクラスを作成する必要があります。
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);
}
}
イタイカハナの答えは確かに正しいです。私が追加する唯一のことは、temp()関数を作成する代わりに、onFocusChanged関数をオーバーライドすることです。個人的に私は以下を使用しました:
@Override
protected void onFocusChanged (boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
performFiltering("", 0);
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
デビッド、あなたの答えは、ユーザーが入力を開始したときだけリストを表示します。私が探しているのは、ユーザーが入力を開始する前であっても、(動的である必要はない)提案のリストを表示することです。何か案が? –
ああ、私は少し疲れていると思います。私は何が思いつくのか見ていきます。私が何か新しいことを考え出すなら、私は自分の答えを編集します。 –