我正在为ListView(standingsLV)使用我自己的BaseAdapter(standingsListAdapter)。当我设置适配器时:standingsLV.setAdapter(standingsListAdapter);getViewTypeCount()被调用。但是后来,当我在适配器中设置新数据时:standingsListAdapter.setData(data);设置新数据调用notifyDataSetChanged()后setData(data):publicvoidsetData(StandingsModelWrapperdata){groupsData.c
我一直在研究CommonswareAndroidProgrammingTutorials,在教程5中,额外学分2,挑战是根据对象的"typename"(餐厅的“type”属性,它是一个字符串)。因此,它建议在自定义ArrayAdapter中覆盖getItemViewType和getViewTypeCount。此外,androiddocs及其他onlinerecipes或blogposts建议相同。在这种情况下,遵循这个秘诀并覆盖这两个方法可以正常工作,但会导致基于检查该餐厅“类型”属性值的冗余逻辑。例如(请注意,此适配器是内部类,restaurants是声明为外部Activity成员的
谁能简单地解释一下ArrayAdapter的getViewTypeCount()和getItemViewType()方法的用法? 最佳答案 这些处理您希望不同行的不同类型View的情况。例如,在联系人应用程序中,您可能希望偶数行在左侧有图片,而奇数行在右侧有图片。在这种情况下,您将使用:@OverridepublicintgetViewTypeCount(){return2;}@OverridepublicintgetItemViewType(intposition){returnposition%2;}框架使用您的View类型来决