在自定义适配器的getView()空指针异常 [英] Null pointer exception in getView() of custom Adapter
本文介绍了在自定义适配器的getView()空指针异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用这个自定义适配器的ListView我:
I am using this Custom Adapter for my ListView:
public class SideMenuAdapter extends BaseAdapter {
private static final int TYPE_MAX_COUNT = 2;
private static LayoutInflater inflater = null;
private Activity activity;
public static String[] values;
ListView myList;
public SideMenuAdapter(Activity a, String[] sa, ListView lv) {
values = sa;
activity = a;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
myList = lv;
}
public int getCount() {
return values.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView mainText;
public TextView sideText;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
View vi = convertView;
if (vi == null) {
//here i am getting NullPointerException
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
vi = inflater.inflate(R.layout.side_menu_list_item, null);
holder.mainText = (TextView) vi.findViewById(R.id.mainText_sideMenu);
holder.sideText = (TextView) vi.findViewById(R.id.sideText_sideMenu);
holder.mainText.setText(values[position]);
if(position == 2){
holder.sideText.setText("3");
holder.sideText.setBackgroundResource(R.drawable.orange);
}
return convertView;
}
@Override
public int getViewTypeCount() {
return TYPE_MAX_COUNT;
}
}
我设置适配器列表视图我是这样的:
i am setting adapter to my listview this way:
String menuItems[] = new String[] { "My Wants", "Profile", "Notifications",
"Feedback", "Logout" };
listView1.setAdapter(new SideMenuAdapter(this, menuItems, listView1));
我在哪里错了?
推荐答案
您应该初始化六
你的 vi.setTag(持有人)之前;
这篇关于在自定义适配器的getView()空指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文