2012-01-10 6 views
0

Привет, я создаю пользовательский listview с texview, imageview, и я получаю доступ к данным из базы данных sqlite, где я храню имя каждого изображения и помещаю изображения в папку assests, когда я пытаюсь получить доступ к нему, используя держатель .mimage.setImageResource (list.get (положение) .getImage()); он дает ошибку, как я могу получить доступ к этому любое предложение будет очень полезнымcustomviewviewview error error

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 не образ. вы извлекаете инстанс imageName изображения из списка объекта PosHolder. Ваш объект PosHolder, дающий вам строку, а не изображение

public String getImage() 
{  
    return smallimage; 
} 

Это вызывает исключение.

+0

спасибо за повтор, есть ли способ установить изображение, используя его имя, любую функцию, потому что я не знаю о растровом изображении – Ghouse

+0

yep, вы можете сделать это, указав его имя drwable. public int getImage() { return R.drawable.myImage; } где myImage - это имя моего изображения. –

0

Ошибка в том, что вы не инициируете поля класса «ViewHolder».
, они все еще являются нулевыми, когда вы устанавливаете для него imageResource.