Android:使用 LayoutInflater setImageResource

发布于 2025-01-06 23:41:02 字数 673 浏览 0 评论 0原文

我有一个 listView、一个主 xml 文件和一个 customListview xml 文件。 对于我的 listView,我使用的是我制作的自定义 ArrayAdapter。

现在,我想将图像设置为 MainActivity 类中的资源。 问题是图像位于另一个 xml 中,而不是我设置 contentView 的 xml 中。

我正在尝试这段代码,但没有任何反应:

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) 和空指针异常

I have a listView, a main xml file and a customListview xml file.
for my listView I am using a custom ArrayAdapter which I made.

Now, i would like to set an image as a resource in my MainActivity class.
the problem is that the image is in another xml, not in this which i set the contentView.

I am trying this code but nothing happens:

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

If interested in all the code, youcan see here:
ImageView setVisibility(0) and null pointer exception

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妥活 2025-01-13 23:41:02

更改基本适配器中的获取方法:

 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;

 }

Change your get method in base adapter:

 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;

 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文