我正在構建我自己的ListView基於this教程。創建自定義適配器類,以避免自定義列表視圖
此行: MessageDetails msg = _data.get(position);
在他的代碼給我一個問題。我顯然遇到了這一行的類型錯誤。我不明白他的代碼是如何工作的。我應該做些什麼不同的事情,以便我能像他那樣工作。
編輯
我知道的一個事實,即與該行的問題是,它試圖把兩種不同類型的共同MessageDetails
和ArrayList<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>
。不知道這種變化是哪裏出了問題。
你讓我困惑了一會兒。你在混合你的類'MenuItemDetail'和教程類'MessageDetail',仔細檢查這不是你的問題。否則,我很困惑你如何期望將一個簡單的字符串轉換爲你的MenuItemDetail對象。正如我前面所說,沒有理由不能使用JSON來創建MenuItemDetails列表。從長遠來看,這是你最好的方法。 – Sam 2013-02-23 22:02:26
他們不同,只是因爲我是自己做的。我會給這個想法一些牽引力 – Mark 2013-02-24 02:56:09