読者です 読者をやめる 読者になる 読者になる

鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

ArrayAdapterをFragment内で使いたい

java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
        // In the onCreate method
        AutoCompleteTextView textView = (AutoCompleteTextView) rootView.findViewById(R.id.task_textview);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getContext(), R.layout.fragment_main, COUNTRIES);
        textView.setAdapter(adapter);

fragment_main.xmlレイアウトファイルにLinearLayoutが入ってその中に、AutoCompleteTextViewが定義されているから問題みたいで、AutoCompleteTextViewだけ切り出せばいいようです。
切り出し方法がわからないなぁ。調べよう。

切り出さなくても、IDを指定する方法があるらしき

stackoverflow.com

これでやったら、なんか、おかしな描写してしまった。

こちらが正解

www.programing-style.com

Adapterには、android.R.layout_simple_list_item_1というものを指定すればいいようだ。

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getContext(), android.R.layout.simple_list_item_1, COUNTRIES);