我正在努力Expandable List View
让它旁边有图像和文字。我有这个例子的大部分工作,我在这里找到了
但我不断得到一个Error
01-07 22:42:26.182: E/AndroidRuntime(28475): at gui.ExpandActivity$1.getChildView(ExpandActivity.java:115)
01-07 22:42:26.182: E/AndroidRuntime(28475): at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:450)
有什么想法吗?谢谢。
// Construct Expandable List
final String NAME = "name";
final String IMAGE = "image";
final LayoutInflater layoutInflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ArrayList<HashMap<String, String>> headerData = new ArrayList<HashMap<String, String>>();
final HashMap<String, String> group1 = new HashMap<String, String>();
group1.put(NAME, "Group 1");
headerData.add(group1);
final HashMap<String, String> group2 = new HashMap<String, String>();
group2.put(NAME, "Group 2");
headerData.add(group2);
final ArrayList<ArrayList<HashMap<String, Object>>> childData = new ArrayList<ArrayList<HashMap<String, Object>>>();
final ArrayList<HashMap<String, Object>> group1data = new ArrayList<HashMap<String, Object>>();
childData.add(group1data);
final ArrayList<HashMap<String, Object>> group2data = new ArrayList<HashMap<String, Object>>();
childData.add(group2data);
// Set up some sample data in both groups
for (int i = 0; i < 10; ++i) {
final HashMap<String, Object> map = new HashMap<String, Object>();
map.put(NAME, "Child " + i);
map.put(IMAGE,
getResources().getDrawable(R.drawable.ic_launcher));
(i % 2 == 0 ? group1data : group2data).add(map);
}
setListAdapter(new SimpleExpandableListAdapter(this,
headerData, android.R.layout.simple_expandable_list_item_1,
new String[] { NAME }, // the name of the field data
new int[] { android.R.id.text1 }, // the text field to
// populate with the
// field data
childData, 0, null, new int[] {}) {
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final View v = super.getChildView(groupPosition,
childPosition, isLastChild, convertView, parent);
// Populate your custom view here
// ((TextView) v.findViewById(R.id.name))
// .setText((String) ((HashMap<String, Object>) getChild(
// groupPosition, childPosition)).get(NAME));
// ((ImageView) v.findViewById(R.id.image))
// .setImageDrawable((Drawable) ((HashMap<String, Object>)
// getChild(
// groupPosition, childPosition)).get(IMAGE));
((TextView) v.findViewById(R.id.name))
.setText("This should be child one corrent?");
// ((ImageView) v.findViewById(R.id.image))
// .setImageDrawable((Drawable) getResources()
// .getDrawable(R.drawable.ic_launcher));
return v;
}
@Override
public View newChildView(boolean isLastChild, ViewGroup parent) {
return layoutInflater.inflate(R.layout.expand_layout,
null, false);
}
});