实现自定义列表视图,我需要帮助,我一直在试图找到如何实现自定义列表视图的方式,我得到一个错误: -错误与BaseAdapter
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at com.edis.edis.HospitalAdaptor.getView(HospitalAdaptor.java:62)
以下是对象是我已经创建并且它被称为Data.java
。
public class Data {
private double lat, lon;
public String name;
String groupA, groupB, groupAB,groupO;
public int url_image;
public Data(double lat, double lon, int url_image, String name, String groupA, String groupB, String groupAB, String groupO)
{
this.lat =lat;
this.lon = lon;
this.url_image =url_image;
this.name = name;
this.groupA =groupA;
this.groupB =groupB;
this.groupAB = groupAB;
this.groupO = groupO;
}
}
然后,我已经创建了一个适配器,其中我在哪里是chakula.setText((hospital.name))
线得到一个错误(空对象)。
以下是我使用BaseAdaptor的适配器。 HospitalsAdaptors.java
public class HospitalAdaptor extends BaseAdapter{
Context context;
List<Data> datas;
public HospitalAdaptor(Context context, List<Data> datas) {
this.context = context;
this.datas = datas;
}
@Override
public int getCount() {
return datas.size();
}
@Override
public Object getItem(int position) {
return datas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Data hospital = (Data)getItem(position);
if(convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.fragment_hospitals,parent,false);
//convertView = LayoutInflater.inflate(R.layout.fragment_hospitals,parent,false);
}
TextView chakula = (TextView)convertView.findViewById(R.id.hospitals_name);
ImageView pilau = (ImageView)convertView.findViewById(R.id.hospitals_image);
chakula.setText(hospital.name);
Glide
.with(context)
.load(hospital.url_image)
.centerCrop()
.crossFade()
.into(pilau);
return convertView;
}
}
为什么不用'ArrayAdapter'来代替? – pskink
你有没有获得者和制定者? –
请发布布局文件也 –