2012-01-10 26 views
0

嗨我創造與texview,ImageView的自定義列表視圖,我訪問來自SQLite數據庫我在哪裏存儲的每個圖像的名稱,將在資產產生文件夾中的圖像數據時,我使用的支架它嘗試訪問.mimage.setImageResource(list.get(位置).getImage()); 它給我如何可以訪問它的錯誤任何建議將是非常有益的自定義列表視圖imageview的錯誤

public class InteractiveArrayAdapter extends ArrayAdapter<PosHolder> { 
String tag = "Events"; 
private final List<PosHolder> list; 
private final Activity context; 
int li,jh; 



public InteractiveArrayAdapter(Activity context, List<PosHolder> list) { 
    super(context, R.layout.row, list); 
    this.context = context; 
    this.list = list; 
} 

static class ViewHolder { 
    protected TextView text; 
    protected CheckBox checkbox,checkbox1; 
    protected RadioGroup mgroup; 
    protected RadioButton mbutton; 
    protected ImageView mimage; 
} 




public View getView(final int position, View convertView, ViewGroup parent) { 
    //Log.d(tag," 3"); 

    View view =null; 
    if (convertView == null) { 
     //System.out.println("ok"); 
     LayoutInflater inflator = context.getLayoutInflater(); 
     view = inflator.inflate(R.layout.row, null); 
     final ViewHolder viewHolder = new ViewHolder(); 
     viewHolder.text = (TextView) view.findViewById(R.id.textView1); 

     viewHolder.mimage = (ImageView) view.findViewById(R.id.imageView1); 




      view.setTag(viewHolder); 
      viewHolder.mimage.setTag(list.get(position)); 


    } else { 
     view = convertView; 
     ((ViewHolder) view.getTag()).mimage.setTag(list.get(position)); 


    } 
    ViewHolder holder = (ViewHolder) view.getTag(); 
    view.getTag()).mgroup.getTag(); 
    holder.text.setText(list.get(position).getName()); 
    holder.mimage.setImageResource(list.get(position).getImage());//This line is showing the error 

    return view; 

} 
public class PosHolder { 
private String name; 
private String smallimage; 


public PosHolder(String name, String smallimage) { 
    // TODO Auto-generated constructor stub 

    this.name=name; 
    this.smallimage=smallimage; 
} 
public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
public String getImage() { 
    return smallimage; 
} 
public void setImage(String phone) { 
    this.smallimage = phone; 
}} 

回答

0

這是becoz您傳遞圖像的名字到ImageView的不是圖像。您正在PosHolder對象列表中檢索imageName圖像的實例。你的PosHolder對象給你的字符串不是圖像

public String getImage() 
{  
    return smallimage; 
} 

這是造成異常。

+0

感謝重播,有沒有辦法通過使用它的名字,因爲我不知道關於位 – Ghouse 2012-01-10 11:07:07

+0

是的,你可以通過給它的名字drwable做任何功能,設置圖像。 public int getImage() { return R.drawable.myImage; }其中myImage是我的圖像的名稱。 – 2012-01-12 13:58:41

0

錯誤是因爲你沒有instanciating的「ViewHolder」類的字段。
它們在您設置imageResource時仍然爲空。