我正在为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;

}

}

我正在以这种方式将适配器设置到我的列表视图:

String menuItems[] = new String[] { "My Wants", "Profile", "Notifications",

"Feedback", "Logout" };

listView1.setAdapter(new SideMenuAdapter(this, menuItems, listView1));

我哪里错了?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐