ExpandableListView自定义Adapter
来源:互联网 发布:淘宝开店后如何推广 编辑:程序博客网 时间:2024/06/07 00:25
public class MainActivity extends Activity implements OnChildClickListener { private List<Map<String, Object>> group; private List<List<Map<String, Object>>> children; private String[] groupFrom = { "group" }; private String[] childFrom = { "child" }; private int[] groupTo = { R.id.iv }; private int[] childTo = { R.id.tv }; private int[] groups = new int[] { R.drawable.i1, R.drawable.i2, R.drawable.i3 }; private String[][] child = new String[][] { { "G1 C1", "G1 C2" }, { "G2 C1", "G2 C2", "G2 C3" }, { "G3 C1" } }; private ExpandableListView elv; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); elv = (ExpandableListView) findViewById(R.id.elv); group = new ArrayList<Map<String, Object>>(); for (int i = 0; i < groups.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("group", groups[i]); group.add(map); } children = new ArrayList<List<Map<String, Object>>>(); for (int i = 0; i < groups.length; i++) { List<Map<String, Object>> lmap = new ArrayList<Map<String, Object>>(); for (int j = 0; j < child[i].length; j++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("child", child[i][j]); lmap.add(map); } children.add(lmap); } adapter = new MyAdapter(getApplicationContext(), group, R.layout.group, groupFrom, groupTo, children, R.layout.child, childFrom, childTo); elv.setAdapter(adapter); elv.setOnChildClickListener(this); } @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub finish(); return true; }}
public class MyAdapter extends BaseExpandableListAdapter { private List<List<Map<String, Object>>> children; private List<Map<String, Object>> group; private String[] childFrom, groupFrom; private int[] childTo, groupTo; private int clayout, glayout; private LayoutInflater inflater; public MyAdapter(Context context, List<Map<String, Object>> group, int glayout, String[] groupFrom, int[] groupTo, List<List<Map<String, Object>>> children, int clayout, String[] childFrom, int[] childTo) { inflater = LayoutInflater.from(context); this.group = group; this.glayout = glayout; this.groupFrom = groupFrom; this.groupTo = groupTo; this.children = children; this.clayout = clayout; this.childFrom = childFrom; this.childTo = childTo; } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return children.get(groupPosition).get(childPosition); } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View cv; if (convertView == null) cv = newChildView(parent); else cv = convertView; bindChildView(cv, children.get(groupPosition).get(childPosition), childFrom, childTo); return cv; } private View newChildView(ViewGroup parent) { // TODO Auto-generated method stub return inflater.inflate(clayout, parent, false); } private void bindChildView(View cv, Map<String, Object> map, String[] childFrom, int[] childTo) { // TODO Auto-generated method stub TextView tv = (TextView) cv.findViewById(childTo[0]); tv.setText((String) map.get(childFrom[0])); } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return children.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return group.get(groupPosition); } @Override public int getGroupCount() { // TODO Auto-generated method stub return group.size(); } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View gv; if (convertView == null) gv = newGroupView(parent); else gv = convertView; bindGroupView(gv, group.get(groupPosition), groupFrom, groupTo); return gv; } private void bindGroupView(View gv, Map<String, Object> map, String[] groupFrom, int[] groupTo) { // TODO Auto-generated method stub ImageView iv = (ImageView) gv.findViewById(groupTo[0]); iv.setImageResource((Integer) map.get(groupFrom[0])); } private View newGroupView(ViewGroup parent) { // TODO Auto-generated method stub return inflater.inflate(glayout, parent, false); } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return true; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; }}
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- ExpandableListView自定义Adapter
- 自定义Adapter填充ExpandableListView
- ExpandableListView的Adapter--MealExpandableListAdapter
- 自定义ExpandableListView
- 自定义ExpandableListView
- 自定义ExpandableListView
- 自定义Adapter
- 自定义Adapter
- 自定义Adapter
- 自定义adapter
- 自定义Adapter
- 自定义Adapter
- 自定义Adapter
- 自定义adapter
- 自定义Adapter
- 自定义adapter
- 自定义Adapter
- 自定义Adapter
- android开发中常用的快捷键
- POJ 1456 Supermarket【贪心 + 并查集】
- android wifi连接开发实例
- 旅行商问题(travelling salesman problem, TSP) 解题报告
- String,StringBuffer与StringBuilder的区别??
- ExpandableListView自定义Adapter
- JavaFX中的资源载入
- 详解Android首选项框架ListPreference
- 级联删除引发的关于Hibernate级联操纵的一些想法
- UITableView内容无法刷新的解决方法
- Android Layout 布局 && CheckBox样例 && View三种属性 && Launcher的几点
- wifi开发——自动连接指定SSID的wifi热点(不加密/加密)
- 注意Hibernate4在开发当中的一些改变
- [LINUX问答]内核编译