【发布时间】:2018-04-05 15:48:22
【问题描述】:
我的 Android 应用程序中有一个填充列表 (ServicesList) - 类型为 String、自定义类 (ServiceRecord.java)、自定义适配器 () 和自定义列表视图 (lvS)。
我已经能够通过以下代码将 List 变量转换为自定义列表:
List<ServiceRecord> objectList = (List)servicesList;
ServicesCustomAdapter adapter = new ServicesCustomAdapter(this, objectList);
lvS.setAdapter(adapter);
我想将转换后的列表设置到列表视图中,但我收到错误“java.lang.classexception: java.lang.String cannot be cast to app.services.net.ServiceRecord”。有人可以告诉我如何去做吗?
我的自定义类如下:
public class ServiceRecord {
private String service;
public String getService() {
return service;
}
public void setService(String service) {
this.service = service;
}
}
还有我的自定义适配器:
public class ServicesCustomAdapter extends ArrayAdapter<ServiceRecord>{
private List<ServiceRecord> items;
public ServicesCustomAdapter(Context context, List<ServiceRecord> items) {
super(context, R.layout.list_service, items);
this.items = items;
}
@Override
public int getCount() {
return items.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null) {
LayoutInflater li = LayoutInflater.from(getContext());
v = li.inflate(R.layout.list_service, null);
}
ServiceRecord bbs = items.get(position);
if(bbs != null) {
//TextView un = (TextView)v.findViewById(R.id.list);
TextView tvservice = (TextView)v.findViewById(R.id.tvservice);
if(tvservice != null) tvservice.setText(bbs.getService());
}
return v;
}
}
【问题讨论】:
-
错误是不言自明的。向下转换期间对象类型不匹配。
-
我该如何解决这个问题?请告诉我怎么做。