2015-01-22 4 views
0

어댑터가 BaseAdapter으로 확장되었으므로 내비게이션 용입니다.getView()에서 사용자 정의 어댑터 오류

하지만 일단 내 listview 어댑터를 설정하면 오류가 발생합니다. NullPointException; getView() 메서드에서는 ImageView을 선언합니다. 많은 연구에도 불구하고 그 이유를 이해할 수 없습니다. 누구? 앱에서 지원을 사용합니다. v7ActionBarActivity

Thx!

public class DrawerItemAdapter extends BaseAdapter { 

Context mContext; 
int mLayoutResourceId; 
ObjectDrawerItem mData[] = null; 


// Constructor 
public DrawerItemAdapter(Context context, int layoutResourceId, ObjectDrawerItem[] data) { 
    this.mContext = context; 
    this.mLayoutResourceId = layoutResourceId; 
    this.mData = data; 
} 


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

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

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

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

    View listItem = convertView; 
    ObjectDrawerItem objectDrawerItem = mData[position]; 

    LayoutInflater inflater = ((ActionBarActivity) mContext).getLayoutInflater(); 
    inflater.inflate(mLayoutResourceId, parent, false); 

    ImageView iconImageView = (ImageView) listItem.findViewById(R.id.drawer_item_icon); 
    TextView titleTextView = (TextView) listItem.findViewById(R.id.drawer_item_title); 

    iconImageView.setImageDrawable(listItem.getResources().getDrawable(objectDrawerItem.getmIcon())); 
    titleTextView.setText(objectDrawerItem.getmTitle()); 

    return listItem; 
} 
} 

답변

2

나는이 라인에서 찾고 있어요 : 당신은 listItem

+0

무엇을 의미합니까? – Makoto

+0

'listItem = inflater.inflate (mLayoutResourceId, parent, false); 그리고 나는 당신의 문제가 해결되어야한다고 생각합니다. – Jun

0

사용 inflater.findViewById()로 반환 된 뷰를 할당 잊어 버린 것 같다 inflater.inflate(mLayoutResourceId, parent, false);

...

ImageView iconImageView = (ImageView) inflater.findViewById(R.id.drawer_item_icon); 
     TextView titleTextView = (TextView) inflater.findViewById(R.id.drawer_item_title); 

이렇게 코드를 변경하십시오.

관련 문제