我一直在努力学习如何使用Eclipse中的“Master / Detail Flow”来开发Android应用程序。
我的问题是我无法理解如何创建我自己的ArrayAdapter(所以我可以改变每行的颜色等等),看起来几乎相同,但会采用“LibHome.ITEMS”(一个对象?而不是一个简单的数组。
我真的不明白如何使这项工作。我也不希望盲目地适应另一种解决方案而不是学习。
setListAdapter(
new ArrayAdapter<LibHome.GenItem>(
getActivity(),
android.R.layout.simple_list_item_activated_1,
android.R.id.text1,
LibHome.ITEMS
)
);
LibHome.java:
package com.example.prac2.lib;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class LibHome {
/**
* Create an Array
*/
public static List<GenItem> ITEMS = new ArrayList<GenItem>();
/**
* A map of sample (dummy) items, by ID.
*/
public static Map<String, GenItem> ITEM_MAP = new HashMap<String, GenItem>();
/**
* Add Items to the array
*/
static {
// Items!
addItem(new GenItem("1", "Title1", "File1"));
addItem(new GenItem("2", "Title2", "File2"));
addItem(new GenItem("2", "Title3", "File3"));
private static void addItem(GenItem item) {
ITEMS.add(item);
ITEM_MAP.put(item.id, item);
}
/**
* A dummy item representing a piece of content.
*/
public static class GenItem {
public String id;
public String content;
public String file;
public GenItem(String id, String content, String file) {
this.id = id;
this.content = content;
this.file = file;
}
@Override
public String toString() {
return content;
}
}
}
答案 0 :(得分:2)
要使其正常工作,您需要创建一个自定义Adapter类来获取LibHome项目。要做到这一点,你会做这样的事情,
public class LibAdapter extends ArrayAdapter<LibHome> {
public LibAdapter(Context context, int textViewResourceId, ArrayList<LibHome> objects) {
super(context, textViewResourceId, objects);
this.objects = objects;
}
public View getView(int position, View convertView, ViewGroup parent){
//Here is where you would change the colors of the text.
return v;
}
}
有一些很好的教程可以帮助你..这里有一些..