2012-07-10 2 views
2

ListView에 대한 사용자 지정 어댑터가 있습니다. 그것은 내 NullPointerExceptionsetAdapter에서 제공합니다. 내 코드를 여러 번 읽었으며 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을 던질 것이다 : 당신의 '활동'조각에서

답변

3

, 당신은 mListView에 값을 할당하지 않습니다. 아마도 xml에 정의 된 것이 있고 findViewById(int)을 호출하려고합니다.

mListView = (ListView) findViewById(R.id.theListViewId); 
+0

음, 초기화되었습니다. 그러나 잘못된 이드에게. 그것을 지적 해 주셔서 대단히 감사합니다 :) – Harsh

관련 문제