【问题标题】:Android: setImageResource with LayoutInflaterAndroid:使用 LayoutInflater 的 setImageResource
【发布时间】:2012-02-16 22:35:02
【问题描述】:

我有一个 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) and null pointer exception

【问题讨论】:

  • 我有一个列表视图,每行有多个元素,我想以编程方式为每一行设置一个图像。例如每行的状态图像(绿色/红色)。

标签: android android-view


【解决方案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;

 }

【讨论】:

  • 谢谢@Anand,但是如何获得这一行的视图:holder.statusOk=(ImageView)view.findViewById(R.id.imageView1);
  • 哦,对不起,它没有查看它的 converView,你已经在你的代码中得到了膨胀。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多