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中声明一个切换语句,并通过检查动物类型来放大布局。我认为这是我尝试进入的方向,因此感谢验证我的想法并为我指出正确的方向:完成,我想先确认它是否正常工作。再次感谢!