这段代码属于自定义微调器的ArrayAdapter。我在getLayoutFlater()方法上遇到无法解析方法的错误,我不知道为什么。
任何帮助都将不胜感激。
public View getCustomView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater= getLayoutInflater();
View mySpinner = inflater.inflate(R.layout.spinneritems, parent, false);
TextView main_text = (TextView) mySpinner.findViewById(R.id.spinneritem);
main_text.setText(spinnerValues[position]);
return mySpinner;
}
}
最佳答案
像这样试试
LayoutInflater inflater= getActivity().getLayoutInflater();
或
LayoutInflater inflater= youContext.getLayoutInflater();
因为method
getLayoutInflater()
属于Activity
并且必须使用getActivity()
方法获取它,或者将上下文传递到adapter
构造函数中,例如:你的适配器扩展了arrayadapter{
private Context mContext;
private ArrayList<Strings> someList;
public YourAdapter (Context context, ArrayList<String> someList) {
super(context, R.layout.comment_item, someList);
**this.mContext = context;**
this.someList = someList;
@Override
public View getView(final int position, View convertView, ViewGroup parent) View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = **mContext**.getLayoutInflater();
rowView = inflater.inflate(R.layout.yourItem, null);
rowView.setTag(viewHolder);
}
return rowView;
}
}
在你的
Activity
YourAdapter mAdapter = new YourAdapter ( **getActivity()**,someList);