2012-02-16 3 views
0

У меня есть listView, основной файл xml и XML-файл customListview. для моего спискаView Я использую настраиваемый 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); 

Если интересует весь код, Youcan посмотреть здесь: ImageView setVisibility(0) and null pointer exception

+0

У меня есть listview, в котором есть несколько элементов для каждой строки, и я хотел бы задать программно изображение для каждой строки. Например, изображение состояния (зеленое/красное) для каждой строки. –

ответ

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); –

+0

ohh жаль, что его не видит его конверт, вы уже получаете надувание, в свой код. –

+0

Exelentm это работает, спасибо @Anand. –

Смежные вопросы