0

I'm getting the following error:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.sebastian.codivatemanager.User.getName()' on a null object reference
at com.sebastian.codivatemanager.FriendAdapter.getView(FriendAdapter.java:57)

on this class:

public class FriendAdapter extends BaseAdapter {

private Context mContext;
private User[] mUsers;

public FriendAdapter(Context context, User[] users) {
    mContext = context;
    mUsers = users;
}

@Override
public int getCount() {
    return mUsers.length;
}

@Override
public Object getItem(int position) {
    return mUsers[position];
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    if(convertView == null) {
        //brand new
        convertView = LayoutInflater.from(mContext).inflate(R.layout.user_overview, null);
        holder = new ViewHolder();
        holder.nameLabel = (TextView) convertView.findViewById(R.id.textViewName);
        holder.levelLabel = (TextView) convertView.findViewById(R.id.textViewLevel);

        convertView.setTag(holder);
    }
    else {
        holder = (ViewHolder) convertView.getTag();
    }

    User user = mUsers[position];

    holder.nameLabel.setText(user.getName());
    holder.levelLabel.setText(user.getLevel() + "");

    return convertView;
}

private static class ViewHolder {
    TextView nameLabel;
    TextView levelLabel;
}
}

The line pointed out is:

holder.nameLabel.setText(user.getName());

I'm trying to display a list using the list adapter "FriendAdapter". This list comes from an array called "mUsers" which is carried over from the class it's included in:

            User[] mUsers = new User[array.length() + 1];

        for(int n = 0; n < array.length(); n++) {
            JSONObject obj = array.getJSONObject(n);
            Log.i("Friends", obj.toString());
            mUsers[n] = new User();
            mUsers[n].setName(obj.getString("name"));
            mUsers[n].setLevel(obj.getDouble("level"));
        }

        FriendAdapter adapter = new FriendAdapter(this, mUsers);
        setListAdapter(adapter);
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245

0 Answers0