【问题标题】:An issue with my CustomListAdapter in Android我在 Android 中的 CustomListAdapter 存在问题
【发布时间】:2014-07-03 20:43:03
【问题描述】:

这个东西在我的 customlistadapter 中,它会在六行中显示一个文本和一个图片。但在最后一行,它只会显示文字,不会显示图片。当我放 0 而不是图片时,它们会显示默认图片,但我不想在那里放任何图片。怎么做?任何提示都会非常有价值,谢谢。

在这一行:

-> pilsTyper.add(new Pilstyper("Egendefinert", 0));

列表适配器类

private class MyListAdapter extends ArrayAdapter<Pilstyper> {
    public MyListAdapter() {
        super(velgDinPromille.this, R.layout.activity_item_view, pilsTyper);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View itemView = convertView;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(
                    R.layout.activity_item_view, parent, false);
        }

        // finn pilstype som du skal jobbe med
        Pilstyper nyPils = pilsTyper.get(position);

        // ImageView
        ImageView imageView = (ImageView) itemView
                .findViewById(R.id.lettol);
        imageView.setImageResource(nyPils.getIkonId());

        // Tekst
        TextView tekst = (TextView) itemView.findViewById(R.id.tekst_pils);
        tekst.setText(nyPils.getTekst());

        return itemView;
    }
} 

private void pilsTyperList() {
    // TODO Auto-generated method stub
    pilsTyper.add(new Pilstyper("Øl", R.drawable.ol));
    pilsTyper.add(new Pilstyper("Cider og rusbrus", R.drawable.cider));
    pilsTyper.add(new Pilstyper("Vin", R.drawable.vin));
    pilsTyper.add(new Pilstyper("Sterkvin", R.drawable.portvin2));
    pilsTyper.add(new Pilstyper("Brennevin/Drinker", R.drawable.drink2));
    pilsTyper.add(new Pilstyper("Egendefinert", 0));
}

【问题讨论】:

  • 你试过imgView.setImageDrawable(null);imgView.setImageResource(0);吗?
  • Pilstyper 是你自己的班级吗?如果是这样,您可以在那里处理0
  • 不,我现在要试试这个,谢谢
  • 尝试替换这一行:pilsTyper.add(new Pilstyper("Egendefinert", 0));有了这个:pilsTyper.add(new Pilstyper("Egendefinert", R.drawable.someimagename));
  • @shayan,如果我使用它,那么所有项目都会得到相同的图片。 haresh,但我不想要任何照片。只有文本 nikis,我该怎么做?

标签: android listadapter


【解决方案1】:

您应该在图标 id 为 0 时隐藏 ImageView。试试这个:

if (nyPils.getIkonId() == 0) {
    imageView.setVisibility(View.GONE); // or View.INVISIBLE
} else {
    imageView.setVisibility(View.VISIBLE);
    imageView.setImageResource(nyPils.getIkonId());
}

【讨论】:

  • 有时我们想得太复杂了,以至于忘记了我们可以用这种方式编写代码。谢谢
【解决方案2】:

你不必提供图片ID,你没有任何其他选择。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多