我在RelativeLayout
内的FrameLayout
内有一个AutoCompleteTextView。我想使用声明如下的类填充完成列表:
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"
。我理解这意味着ArrayAdapter
构造函数中的第二个参数应该是从TextView
派生的内容的id。所有示例都将此参数显示为封闭布局。有人可以解决我的困惑吗?
答案 0 :(得分:0)
对于适配器构造函数中的第二个参数,请传入android.R.layout.simple_dropdown_item_1line或android.R.layout.simple_list_item_1。
提示提示它需要通过参数名称的textview:textViewResoureceId。