2
내 ListView
에 대한 사용자 지정 어댑터가 있습니다. 그것은 내 NullPointerException
setAdapter
에서 제공합니다. 내 코드를 여러 번 읽었으며 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);
Dashboardbean :
이public class DashboardBean {
public String project;
public String workRequest;
public String startDate;
public String status;
public String actualHours;
public String actualMins;
public DashboardBean(String project, String workRequest,String status)
{
this.project = project;
this.workRequest = workRequest;
this.status = status;
}
}
CustomAdapter :
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;
}
}
사람이 도와 주 시겠어요?
이 때문에ListView mListView; //initialize me please :)
, 그것은이 null이며, 항상 NullPointerException
을 던질 것이다 : 당신의 '활동'조각에서
음, 초기화되었습니다. 그러나 잘못된 이드에게. 그것을 지적 해 주셔서 대단히 감사합니다 :) – Harsh