RelativeLayout
の中に AutoCompleteTextView がありFrameLayout
ます。次のように宣言されたクラスを使用して、補完リストを作成したいと思います。
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
...
public AutoCompleteAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
data = new ArrayList<String>();
}
...
}
次のようにアダプターを取り付けました。
AutoCompleteTextView tv = (AutoCompleteTextView) v.findViewById(R.id.editTextClient);
AutoCompleteAdapter adapter = new AutoCompleteAdapter(getActivity(), R.layout.fragment_main_right);
tv.setAdapter(adapter);
ここで、R.layout.fragment_main_right はFrameLayout
上記の囲みです。テキストの入力を開始するClassCastException
と、次のメッセージが表示されます: "android.widget.FrameLayout cannot be cast to android.widget.TextView"
. これは、コンストラクターの 2 番目のパラメーターがArrayAdapter
a から派生したものの id でなければならないことを意味すると理解していTextView
ます。すべての例で、このパラメーターが囲みレイアウトであることを示しています。誰かが私の混乱を解消できますか?