Вопрос

У меня есть ListView, основной XML -файл и файл CustomListView XML. Для моего ListView я использую пользовательский ArrayAdapter, который я сделал.

Теперь я хотел бы установить изображение в качестве ресурса в моем классе 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) и исключение NULL Pointer

Это было полезно?

Решение

Измените свой метод получения в базовом адаптере:

 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;

 }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top