列表视图为空时应用程序崩溃

时间:2018-01-11 10:50:55

标签: java android listview

我尝试运行的应用有问题。我有一个listview,它是由我在类的edittext中添加的名称组成的。当没有项目时,当我移动到listview时,应用程序崩溃并且我收到该错误:

java.lang.NullPointerException: Attempt to invoke interface method int java.util.List.size() on a null object reference

虽然我在listview中有一个或多个项目,但我可以看到它们没有崩溃或错误。你能帮我吗?以下是我的代码。

public class ListAdapter extends BaseAdapter {
Context context;
List<Student> valueList;

public ListAdapter(List<Student> listValue, Context context)
{
    this.context = context;
    this.valueList = listValue;
}

@Override
public int getCount()
{
    return this.valueList.size();
}

@Override
public Object getItem(int position)
{
    return this.valueList.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    ViewItem viewItem;
    convertView = null;

    if(convertView == null)
    {

        viewItem = new ViewItem();

        LayoutInflater layoutInfiater = (LayoutInflater)this.context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

        convertView = layoutInfiater.inflate(R.layout.listviewitem, null);

        viewItem.TextViewStudentName = (TextView)convertView.findViewById(R.id.textView1);

        convertView.setTag(viewItem);

    }
    else
    {
        viewItem = (ViewItem) convertView.getTag();
    }

    viewItem.TextViewStudentName.setText(valueList.get(position).StudentName);


    return convertView;}}
class ViewItem{TextView TextViewStudentName;}

错误位于命令return this.valueList.size();中。如果您需要,我也可以发布我的代码的其他类。提前谢谢!

1 个答案:

答案 0 :(得分:0)

嗨请在设置适配器代码之前检查。

if(yourDataList!=null && yourDataList.size() > 0 )
{
  yourListOrRecyclerView.setAdapter(adapter);
}

请像上面那样解决你的问题。