【问题标题】:Can't use List<String> when implementing CustomListAdapter android实现 CustomListAdapter android 时不能使用 List<String>
【发布时间】:2018-04-03 20:11:40
【问题描述】:

我有一组处于多态层次结构中的动物对象(即动物>爬行动物>蛇)。我想创建一个列表视图,其中列表中的每个项目都根据对象类型使用不同的布局进行膨胀(例如,爬行动物的一个项目布局,猫的一个项目布局,灵长类动物的一个项目布局等)。此活动只是类别,而不是动物的实际列表。所以我只想创建一个“组”项。

为此,我尝试使用所有可能的动物类型(同样,爬行动物、灵长类动物、猫等)的列表。以 List 集合的形式。如何使用 CustomListAdapter 来完成此任务?它似乎不想让我给适配器一个字符串列表,它想要一个对象列表。

【问题讨论】:

  • 如果您正在创建对象列表,为什么要在适配器中填充字符串列表??
  • @MezzyDroid 我不确定我是否理解你的问题..?
  • 我只希望第一个活动有一个可能类型的列表。然后,当您单击其中一个项目时,您将转到下一个活动,该活动显示所选类型的所有动物。此外,在类型列表中,我想根据每个项目的类型为每个项目使用不同的布局(例如,一个布局文件用于猫项目,另一个用于爬行动物项目等)。
  • 我猜另一种说法是我想为每个项目膨胀不同的布局资源,具体取决于添加到列表中的项目类型。希望对您有所帮助。
  • 只需在适配器的 oncreateView 中创建一个 switch 语句,然后通过检查动物的类型来扩展布局

标签: java android listview listadapter


【解决方案1】:

只需使用 switch 或 if 语句检查类型并相应地膨胀:

这是一个示例代码:

  @Override 
    public View getView()
    {
        View row = null;
            if (activity.equalsIgnoreCase("Ni_activity") || activity.equalsIgnoreCase("Current_NI_Activity") || activity.equalsIgnoreCase("Ni_Test_Activity")) {
                row = inflater.inflate(R.layout.ni_spinner_row, parent, false);
            } else if (activity.equalsIgnoreCase("RFTestActivity")) {
                row = inflater.inflate(R.layout.spinner_row, parent, false);
            } else if (activity.equalsIgnoreCase("SiteInfoFragment") || activity.equalsIgnoreCase("LayerInfoFragment")) {
                row = inflater.inflate(R.layout.site_frag_spinner, parent, false);
            }

            TextView tvCategory = (TextView) row.findViewById(R.id.tvCategory);
            tvCategory.setTypeface(null, Typeface.BOLD);
            try {
                tvCategory.setText(data.get(position));
            } catch (Exception e) {
                e.printStackTrace();
            }
            return row;
    }

【讨论】:

  • 我认为这是我试图进入的方向,所以感谢您验证我的想法并为我指明正确的方向:)
  • 完成,想先确认一下我的工作正常。再次感谢!
猜你喜欢
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 2016-07-25
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
相关资源
最近更新 更多