Android 自定义适配器不工作

Android 自定义适配器不工作,android,Android,我的列表视图有一个自定义适配器。它在setAdapter处为我提供NullPointerException。我已经检查了我的代码好几次,但都不知道是什么导致了NPE。以下是相关的代码片段: 活动: ListView mListView; Vector<DashboardBean> dashboardBean= new Vector<DashboardBean>(); MyCustomAdapter adapter; adapter = new MyCustomAdapt

我的
列表视图有一个自定义适配器。它在
setAdapter
处为我提供
NullPointerException
。我已经检查了我的代码好几次,但都不知道是什么导致了NPE。以下是相关的代码片段:

活动:

ListView mListView;
Vector<DashboardBean> dashboardBean= new Vector<DashboardBean>();
MyCustomAdapter adapter;

adapter = new MyCustomAdapter(MyDashboardActivity.this, 
              R.layout.testdashboard_row, dashboardBean);

        adapter.clear();

dashboardBean.add(new DashboardBean(projects, workRequests, status)); 
        mListView.setAdapter(adapter);
自定义适配器:

public class MyCustomAdapter extends ArrayAdapter<DashboardBean> {


Context context;
int layoutResourceId;
DashboardBean currentMRB;
Vector<DashboardBean> data;

public MyCustomAdapter(Context context, int layoutResourceId, Vector<DashboardBean> data) 
{
    super(context,layoutResourceId,data);
    this.layoutResourceId = layoutResourceId;
    this.context=context;
    this.data = data;
}

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

    View row = convertView;
    MyStringReaderHolder holder;


    if(row==null)
    {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent,false);

        holder= new MyStringReaderHolder();


        holder.project = (TextView)row.findViewById(R.id.project);
        holder.workRequest = (TextView)row.findViewById(R.id.work_request);
        holder.status = (TextView) row.findViewById(R.id.status);


        row.setTag(holder);
    }
    else
    {
        holder=(MyStringReaderHolder) row.getTag();
    }

    DashboardBean mrb = data.elementAt(position);

    holder.project.setText(mrb.project);
    holder.workRequest.setText(mrb.workRequest);
    holder.status.setText(mrb.status);

    return row;
}

static class MyStringReaderHolder
{
TextView project, workRequest, startDate, status, actualHours;

 }
 }
公共类MyCustomAdapter扩展了ArrayAdapter{
语境;
国际布局资源;
仪表板bean currentMRB;
矢量数据;
公共MyCustomAdapter(上下文、int-layoutResourceId、向量数据)
{
超级(上下文、布局资源ID、数据);
this.layoutResourceId=layoutResourceId;
this.context=context;
这个数据=数据;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
mystringraderholder;
if(行==null)
{
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
行=充气机。充气(layoutResourceId,父级,false);
holder=新MyStringReaderHolder();
holder.project=(TextView)row.findViewById(R.id.project);
holder.workRequest=(TextView)row.findViewById(R.id.work\u请求);
holder.status=(TextView)row.findViewById(R.id.status);
row.setTag(支架);
}
其他的
{
holder=(MyStringReaderHolder)行。getTag();
}
DashboardBean mrb=data.elementAt(位置);
holder.project.setText(mrb.project);
holder.workRequest.setText(mrb.workRequest);
holder.status.setText(mrb.status);
返回行;
}
静态类MyStringReaderHolder
{
TextView项目、工作请求、开始日期、状态、实际小时数;
}
}

有人能帮忙吗?

在您的“活动”代码段中,您从未为
mListView
赋值:

ListView mListView; //initialize me please :)
因此,它为null,并且将始终抛出
NullPointerException
。也许您已经在xml中定义了一些东西,并且希望调用
findViewById(int)


嗯,它被初始化了。但是,请输入错误的id。非常感谢您指出:)
ListView mListView; //initialize me please :)
mListView = (ListView) findViewById(R.id.theListViewId);