在实现CustomListAdapter android时无法使用List <string>

时间:2018-04-03 20:11:40

标签: java android listview listadapter

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

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

1 个答案:

答案 0 :(得分: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;
    }