Java 不兼容的类型正在尝试。进入自定义适配器(Android)
我一直在尝试在我的第一个android应用程序中使用自定义适配器 这是我的应用程序中的代码: CustomAdapter类:Java 不兼容的类型正在尝试。进入自定义适配器(Android),java,android,Java,Android,我一直在尝试在我的第一个android应用程序中使用自定义适配器 这是我的应用程序中的代码: CustomAdapter类: class CustomListAdapter extends BaseAdapter { Context mContext; List<String> notes; public CustomListAdapter (Context context, List notes) { mContext = context; this.n
class CustomListAdapter extends BaseAdapter {
Context mContext;
List<String> notes;
public CustomListAdapter (Context context, List notes) {
mContext = context;
this.notes = notes;
}
@Override
public int getCount() {
return notes.size();
}
@Override
public String getItem(int i) {
return notes.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
// This method is called to draw each row of the list
@Override
public View getView(int index, View convertView, final ViewGroup parent) {
View vi = convertView;
if (vi == null) {
LayoutInflater inflater;
inflater = LayoutInflater.from(parent.getContext());
vi = inflater.inflate(R.layout.item_list, parent, false);
}
final Note noteModel = notes.get(index);
TextView date = (TextView) vi.findViewById(R.id.date);
date.setText("" + noteModel.getDate());
TextView title = (TextView) vi.findViewById(R.id.title);
title.setText(noteModel.getTitle());
TextView content = (TextView) vi.findViewById(R.id.content);
content.setText(noteModel.getNote());
final View view = View.inflate(mContext, R.layout.item_list, null);
return view;
}
我遇到的问题是,当我尝试创建
final Note noteModel = notes.get(index);
在自定义适配器类的末尾,它给出了一个错误:“不兼容的类型,找到:字符串,必需:注意”
我知道错误的意思,但我一直在部分复制我在互联网上找到的这个例子:
public class CustomAdapter extends BaseAdapter {
private static final String TAG = CustomAdapter.class.getSimpleName();
ArrayList<DataModel> listArray;
public CustomAdapter() {
listArray = new ArrayList<DataModel>(5);
listArray.add(new DataModel("Title1", "Java", new Date()));
listArray.add(new DataModel("name2", "Python", new Date()));
listArray.add(new DataModel("name3", "Django", new Date()));
listArray.add(new DataModel("name4", "Groovy", new Date()));
listArray.add(new DataModel("name5", "Maven", new Date()));
}
@Override
public int getCount() {
return listArray.size(); // total number of elements in the list
}
@Override
public Object getItem(int i) {
return listArray.get(i); // single item in the list
}
@Override
public long getItemId(int i) {
return i; // index number
}
@Override
public View getView(int index, View view, final ViewGroup parent) {
if (view == null) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
view = inflater.inflate(R.layout.single_list_item, parent, false);
}
final DataModel dataModel = listArray.get(index);
TextView title = (TextView) view.findViewById(R.id.title);
title.setText(dataModel.getTitle());
TextView content = (TextView) view.findViewById(R.id.content);
content.setText(dataModel.getContent());
TextView date = (TextView) view.findViewById(R.id.date);
date.setText("" + dataModel.getDate());
return view;
在那个例子中,这个人做了和我尝试做的相同的事情,但是代码运行,等等。
据我所见,代码与我的Note类和自定义适配器非常相似
我已经试着弄明白这两天了,但我似乎无法让它工作。
我的应用程序中还有几个其他的类,但我认为它们不相关,所以我没有在上面发布它们
如果有人能告诉我如何解决这个问题,我将非常感激
提前谢谢
干杯
Corey更改
列表注释中的声明代码>到列表注释代码>在CustomListAdapter
类中
List<Note> notes;
列表注释;
上面的声明声明了一个列表
包含注释
对象。您好,感谢heaps,这太完美了,我从来没有注意到这个代码。再次感谢,干杯,科里
public class CustomAdapter extends BaseAdapter {
private static final String TAG = CustomAdapter.class.getSimpleName();
ArrayList<DataModel> listArray;
public CustomAdapter() {
listArray = new ArrayList<DataModel>(5);
listArray.add(new DataModel("Title1", "Java", new Date()));
listArray.add(new DataModel("name2", "Python", new Date()));
listArray.add(new DataModel("name3", "Django", new Date()));
listArray.add(new DataModel("name4", "Groovy", new Date()));
listArray.add(new DataModel("name5", "Maven", new Date()));
}
@Override
public int getCount() {
return listArray.size(); // total number of elements in the list
}
@Override
public Object getItem(int i) {
return listArray.get(i); // single item in the list
}
@Override
public long getItemId(int i) {
return i; // index number
}
@Override
public View getView(int index, View view, final ViewGroup parent) {
if (view == null) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
view = inflater.inflate(R.layout.single_list_item, parent, false);
}
final DataModel dataModel = listArray.get(index);
TextView title = (TextView) view.findViewById(R.id.title);
title.setText(dataModel.getTitle());
TextView content = (TextView) view.findViewById(R.id.content);
content.setText(dataModel.getContent());
TextView date = (TextView) view.findViewById(R.id.date);
date.setText("" + dataModel.getDate());
return view;
public class DataModel {
private String title;
private String content;
private Date date;
public DataModel(String title, String content, Date date) {
this.title = title;
this.content = content;
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
List<Note> notes;