我还没有使用过listViews,现在我需要帮助来决定使用哪种适配器。
我需要三个标题:
String fruit = "Fruits";
String vegetable = "Vegetables";
String bread = "Breads"
我还有三个数组要用作listView的数据(不使用此示例应用程序的数据库)。我可能想要三个ArrayLists,但是现在我将使用数组。
String[] fruits = {"Apple","Orange"};
String[] vegetables = {"Potato","Carrot"};
String[] breads = {"Rye","Wheat"};
我希望ListView看起来像Android 4.x设置屏幕,带有"标题"标题。
Fruits
___________________________
Apple
---------------------------
Orange
---------------------------
Vegetables
___________________________
Potato
---------------------------
Carrot
---------------------------
Breads
___________________________
Rye
---------------------------
Wheat
---------------------------
有人能指出我正确的方向吗?再次......如果允许我在运行时添加水果,我可能想切换到ArrayList。
答案 0 :(得分:0)
有一个可用于此的安卓库,它可以解决您的问题。 https://code.google.com/p/android-amazing-listview/
答案 1 :(得分:0)
您可能想要使用自定义数组适配器。基本上,您需要在模型类中包装一行的所有数据。并使用 model 类的数组作为数据源创建一个数组适配器。
在自定义适配器部件上查看此链接以供参考:http://www.vogella.com/tutorials/AndroidListView/article.html#adapterown_custom
答案 2 :(得分:0)
在Android中创建设置有native support。它看起来就像用户应用程序设置活动一样。
或者如果想要自己的实现。你应该用model管理这个。创建一个将包装这3个数组的类,然后他将返回其状态的活动数组。
答案 3 :(得分:0)
最简单的方法是为每个组使用单独的listView。但是当你想将所有这些列表放在一个列表中时,我认为你应该使用BaseAdapter并阅读大约2种方法:getViewTypeCount() = 2,在你的情况下getItemViewType(int position)。主要问题是你必须计算哪个类型在哪个位置:
答案 4 :(得分:0)
使用自定义适配器。这是一个例子 Android custom Row Item for ListView
此外,
创建head.xml
和body.xml
在
中做点什么@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi = convertView;
if (vi == null) {
if ( isHead() ) // check whether the view is head?
vi = inflater.inflate(R.layout.head, null);
else
vi = inflater.inflate(R.layout.body, null);
}
TextView text = (TextView) vi.findViewById(R.id.text);
text.setText(data[position]);
return vi;
}