1. 程式人生 > >Android之自定義 ArrayAdapter介面卡

Android之自定義 ArrayAdapter介面卡

public class CyCameraAdapter extends ArrayAdapter<Bitmap>{
    private int mResourceId;
    private List<Bitmap> listBitmap;
    private LayoutInflater mLayoutInflater;
    public CyCameraAdapter(Context context, int imgViewResourceId, List<Bitmap> listBitmap) {
        super(context, 
imgViewResourceId, listBitmap); this.mResourceId = imgViewResourceId; mLayoutInflater = LayoutInflater.from(context); } @Override public View getView(int position, View convertView, ViewGroup parent) { Bitmap bitmap = getItem(position); RelativeLayout userListItem = new RelativeLayout(getContext());
LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(mResourceId, userListItem,true); ImageView image = (ImageView) view.findViewById(R.id.cameraImage); image.setImageBitmap(bitmap); return view; } }
public class 
EnterpriseListAdapter extends ArrayAdapter<EnterpriseInfo>{ private int resourceId; public EnterpriseListAdapter(Context context, int resource, List<EnterpriseInfo> objects) { super(context, resource, objects); this.resourceId = resource; } @Override public View getView(int position, View convertView, ViewGroup parent) { EnterpriseInfo enterprise = getItem(position); View view; ViewHolder holder; if(convertView == null){ view = LayoutInflater.from(getContext()).inflate(resourceId,null); holder = new ViewHolder(); holder.enterpriceName = (TextView) view.findViewById(R.id.ent_info_name); holder.person = (TextView) view.findViewById(R.id.tv_person); holder.address = (TextView) view.findViewById(R.id.tv_address); view.setTag(holder); }else{ view = convertView; holder = (ViewHolder) view.getTag(); } holder.enterpriceName.setText(enterprise.getCompanyName()); holder.person.setText(enterprise.getPerson()); holder.address.setText(enterprise.getAddress()); return view; } class ViewHolder{ TextView enterpriceName; TextView person; TextView address; }
}
NULLPointException:
 1. 在對控制元件例項化的時候經常忘寫view.findViewById。
 2. inflate(resourceId,null)------有時會寫成R.layout佈局檔案。
RuntimeException: android.widget.LinearLayout cannot be cast to android.widget.TextView
 1.每次重寫getView()方法時,系統會預設給出super(); -------解決辦法:需要去除這行。。