Android 自定义listview imageview错误
您好,我正在使用texview、imageview创建一个自定义listview,我正在访问sqlite数据库中的数据,在这里我存储每个图像的名称,并在尝试使用holder.mimage.setImageResource(list.get(position.getImage())访问时将图像放在Assets文件夹中; 这是给的错误,我如何才能访问它任何建议将是非常有益的Android 自定义listview imageview错误,android,android-layout,Android,Android Layout,您好,我正在使用texview、imageview创建一个自定义listview,我正在访问sqlite数据库中的数据,在这里我存储每个图像的名称,并在尝试使用holder.mimage.setImageResource(list.get(position.getImage())访问时将图像放在Assets文件夹中; 这是给的错误,我如何才能访问它任何建议将是非常有益的 public class InteractiveArrayAdapter extends ArrayAdapter<Po
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;
}}
公共类InteractiveArrayAdapter扩展了ArrayAdapter{
String tag=“事件”;
私人最终名单;
私人最终活动背景;
李国华,;
公共InteractiveArrayAdapter(活动上下文、列表){
super(上下文、R.layout.row、列表);
this.context=上下文;
this.list=列表;
}
静态类视窗夹{
受保护的文本查看文本;
受保护复选框,复选框1;
受保护的放射组经理组;
受保护的无线按钮;
受保护的图像视图模拟图像;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
//日志d(标签“3”);
视图=空;
if(convertView==null){
//System.out.println(“ok”);
LayoutInflater充气器=上下文。getLayoutInflater();
视图=充气机充气(R.layout.row,空);
最终ViewHolder ViewHolder=新的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));
}否则{
视图=转换视图;
((ViewHolder)view.getTag()).mimage.setTag(list.get(position));
}
ViewHolder=(ViewHolder)view.getTag();
view.getTag()).mgroup.getTag();
holder.text.setText(list.get(position.getName());
holder.mimage.setImageResource(list.get(position.getImage());//此行显示错误
返回视图;
}
公共类职位持有者{
私有字符串名称;
私有字符串图像;
公共PosHolder(字符串名称、字符串图像){
//TODO自动生成的构造函数存根
this.name=name;
this.smallimage=smallimage;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getImage(){
返回图像;
}
公共void setImage(字符串电话){
this.smallimage=手机;
}}
这是因为您正在将图像的名称传递给imageView,而不是图像。您正在从PosHolder对象列表中返回图像的imageName实例。您的PosHolder对象给您的字符串不是图像
public String getImage()
{
return smallimage;
}
这导致异常。错误是因为您没有实例化“ViewHolder”的字段类。
在设置imageResource时,它们仍然为空。感谢replay。是否有任何方法可以通过使用其名称或函数来设置图像,因为我不知道bitmapyep。您可以通过提供其drwable名称来实现。
public int getImage(){return R.drawable.myImage;}
其中myImage是我的图像的名称。