gpt4 book ai didi

java - 创建自定义适配器类以避免自定义 ListView

转载 作者:行者123 更新时间:2023-12-02 07:14:58 25 4
gpt4 key购买 nike

我正在基于this构建我自己的ListView教程。

这一行: MessageDetails msg = _data.get(position);他的代码给我带来了问题。我显然在这一行中遇到了类型错误。我不明白他的代码是如何工作的。我应该做些什么不同的事情,才能让它像他那样工作。

编辑

我知道这一行的问题在于它试图将两种不同的类型放在一起 MessageDetailsArrayList<String> 。他的教程没有给我一个好的方法,因为我遇到了错误,而他显然没有。

我的适配器类

public class MenuItemAdapter extends BaseAdapter {
private ArrayList<String> _data;
Context _c;

MenuItemAdapter(ArrayList<String> data, Context c){
_data = data;
_c = c;
}
public int getCount() {
return _data.size();
}
public Object getItem(int position) {
return _data.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) _c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.menuitemrow, null);
}
ImageView image = (ImageView) v.findViewById(R.id.MIR_itemImage);
TextView itemName = (TextView)v.findViewById(R.id.MIR_itemImage);
TextView itemDescription = (TextView)v.findViewById(R.id.MIR_itemDescription);
TextView itemPrice = (TextView)v.findViewById(R.id.MIR_itemPrice);
TextView itemOther = (TextView)v.findViewById(R.id.MIR_itemOther);

// Create instance of MenuItemDetail and then assign
MenuItemDetail mid = _data.get(position);
image.setImageResource(mid.icon);
itemName.setText(mid.itemName);
itemDescription.setText(mid.itemDescription);
itemPrice.setText(mid.itemPrice);
itemOther.setText(mid.itemOther);
return v;
}

}

这是我的MenuItemDetail与他的类非常相似,只是用我的字段代替。

public class MenuItemDetail {

int icon;
String itemName;
String itemDescription;
String itemPrice;
String itemOther;



public int getIcon() {
return icon;
}
public void setIcon(int icon) {
this.icon = icon;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public String getItemDescription() {
return itemDescription;
}
public void setItemDescription(String itemDescription) {
this.itemDescription = itemDescription;
}
public String getItemPrice() {
return itemPrice;
}
public void setItemPrice(String itemPrice) {
this.itemPrice = itemPrice;
}
public String getItemOther() {
return itemOther;
}
public void setItemOther(String itemOther) {
this.itemOther = itemOther;
}


}

任何帮助和解释将不胜感激。

我还必须修复 ArrayList问题以及需要 ArrayList<String> 的地方。不确定这个改变是否是哪里出了问题。

最佳答案

您声明 _data作为字符串列表( ArrayList<String> ),也许您打算使用 MenuItemDetails 列表?因为您无法将 String 转换为 MenuItemDetail 对象。这些类是不相关的。

private ArrayList<MenuItemDetail> _data;
Context _c;

MenuItemAdapter(ArrayList<MenuItemDetail> data, Context c){
_data = data;
_c = c;
}

关于java - 创建自定义适配器类以避免自定义 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15046049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com