Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在实现CustomListAdapter android时不能使用List_Java_Android_Listview_Listadapter - Fatal编程技术网

Java 在实现CustomListAdapter android时不能使用List

Java 在实现CustomListAdapter android时不能使用List,java,android,listview,listadapter,Java,Android,Listview,Listadapter,我有一个多态层次结构中的动物对象集合,即动物>爬行动物>蛇。我想创建一个列表视图,其中列表中的每个项目根据对象类型使用不同的布局进行膨胀,例如一个项目布局用于爬行动物,一个项目布局用于猫,一个项目布局用于灵长类等。此活动只是类别,而不是实际的动物列表。所以我只想创建一个组项 为了做到这一点,我试图再次以列表集合的形式使用所有可能的动物类型的列表,爬行动物、灵长类动物、猫等。如何使用CustomListAdapter来实现这一点?它似乎不想让我给适配器一个字符串列表,它想要一个对象列表。只需使用s

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


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

只需使用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;
    }

如果您正在创建对象列表,为什么要在adapter???@Mezzhydroid中填充字符串列表?我不确定是否理解您的问题..?我只希望第一个活动有一个可能类型的列表。然后,当您单击其中一个项目时,将转到下一个活动,该活动将显示所选类型的所有动物。此外,在类型列表中,我想根据每个项目的类型使用不同的布局,例如一个布局文件用于cat项目,另一个布局文件用于爬行动物项目,等等。我猜另一种方式是,我想根据添加到列表中的项目类型,为每个项目增加不同的布局资源。希望这会有所帮助。只需在适配器的oncreateView中声明一个切换语句,并通过检查动物类型来放大布局。我认为这是我尝试进入的方向,因此感谢验证我的想法并为我指出正确的方向:完成,我想先确认它是否正常工作。再次感谢!