2012-02-16 52 views
0

我有一个listView,一个主要的xml文件和一个customListview xml文件。 为我的listView我正在使用我制作的自定义ArrayAdapter。Android:setImageResource与LayoutInflater

现在,我想设置一个图像作为我的MainActivity类中的资源。 问题是,图像是在另一个XML,而不是在这我设置contentView。

我想这个代码,但没有任何反应:

LayoutInflater mInflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); 
View view=mInflater.inflate(R.layout.custom_row_view,null); 
ImageView statusOk=(ImageView)view.findViewById(R.id.statusOkImage); 
statusOk.setImageResource(R.drawable.ic_launcher); 

如果有兴趣在所有的代码,由此可以看出这里: ImageView setVisibility(0) and null pointer exception

+0

我有一个listview,每行有多个元素,我想为每行设置一个图像。例如每行一个状态图像(绿色/红色)。 – 2012-02-16 14:33:42

回答

1

更改get方法在基础适配器:

public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.custom_row_view, null); 
     holder = new ViewHolder(); 
     holder.txtName = (TextView) convertView.findViewById(R.id.name); 
     holder.txtCityState = (TextView) convertView.findViewById(R.id.cityState); 
     holder.txtPhone = (TextView) convertView.findViewById(R.id.phone); 

     holder.statusOk=(ImageView)convertView.findViewById(R.id.imageView1); 

     convertView.setTag(holder); 
     } else { 
     holder = (ViewHolder) convertView.getTag(); 
     } 




     statusOk.setVisibility(View.VISIBLE); 
     holder.txtName.setText(searchArrayList.get(position).getName()); 
     holder.txtCityState.setText(searchArrayList.get(position).getCityState()); 
     holder.txtPhone.setText(searchArrayList.get(position).getPhone()); 

     return convertView; 
    } 

static class ViewHolder { 
    TextView txtName; 
    TextView txtCityState; 
    TextView txtPhone; 

    ImageView statusOk; 

} 
+0

谢谢@Anand,但如何获得这一行的观点:holder.statusOk =(ImageView)view.findViewById(R.id.imageView1); – 2012-02-16 14:30:31

+0

ohh对不起,它没有看到它的converView,你已经通过膨胀,在你的代码。 – 2012-02-16 14:34:44

+0

Exelentm它的工作原理,谢谢@Anand。 – 2012-02-16 14:43:53