在我的应用程序中,我使用popupwindow扩展了我的自定义视图。
现在里面有一个AutoCompleteTextview提供建议。
现在的问题是,每当我开始在AutoCompleteTextView中输入文本时应用程序崩溃。
错误日志: -
Unable to add window -- token android.view.ViewRootImpl$W@1c6ea57 is not valid; is your activity running?
问题来自: -
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh;
View view = convertView;
if (view == null) {
if (inflater == null)
inflater = LayoutInflater.from(parent.getContext()); // ISSUE
view = inflater.inflate(R.layout.chips_adapter,parent, false); // ISSUE
vh = new ViewHolder();
vh.tv = (TextView) view.findViewById(R.id.textView1);
view.setTag(vh);
} else {
vh = (ViewHolder) view.getTag();
}
vh.tv.setText(suggestions.get(position).getTitle());
return view;
}
我认为错误是关于在另一个膨胀的布局上膨胀布局。
答案 0 :(得分:0)
在适配器类中:
使用context的参数创建构造函数。
示例:(考虑类名是AdapterClass)
Class AdapterClass {
LayoutInflater inflater;
private Context context;
public AdapterClass(Context context){
this.context = context;
inflater = LayoutInflater.from(this.context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh;
View view = convertView;
if (inflater == null){
view = inflater.inflate(R.layout.chips_adapter,parent, false);
vh = new ViewHolder();
vh.tv = (TextView) view.findViewById(R.id.textView1);
view.setTag(vh);
} else {
vh = (ViewHolder) view.getTag();
}
vh.tv.setText(suggestions.get(position).getTitle());
return view;
}
}
注意: - 当您调用AdapterClass时,不要忘记使用Context作为参数初始化构造函数。