android里面ExpandableListView 的运用
2014-12-23 16:41
281 查看
仅供以后学习。
package com.example.expanddemo; import android.os.Bundle; import android.app.Activity; import android.database.DataSetObserver; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.HorizontalScrollView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ExpandableListAdapter myadapter=new ExpandableListAdapter() { int[] ids={android.R.drawable.alert_dark_frame, android.R.drawable.alert_light_frame, android.R.drawable.btn_default}; String names[]={"老虎","狮子","大象"}; String detail[][]={ {"德玛","卢锡安","vn"}, {"凤女","小炮","锤石"}, {"猴子","战争","兰博"} }; @Override public void unregisterDataSetObserver(DataSetObserver observer) { // TODO Auto-generated method stub } @Override public void registerDataSetObserver(DataSetObserver observer) { // TODO Auto-generated method stub } @Override public void onGroupExpanded(int groupPosition) { // TODO Auto-generated method stub } @Override public void onGroupCollapsed(int groupPosition) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "关闭", Toast.LENGTH_LONG).show(); } @Override public boolean isEmpty() { // TODO Auto-generated method stub return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return false; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLayout ll=new LinearLayout(getApplicationContext()); ll.setOrientation(0); ImageView imageView=new ImageView(getApplicationContext()); imageView.setImageResource(ids[groupPosition]); ll.addView(imageView); TextView tv=new TextView(getApplicationContext()); tv.setText(names[groupPosition]); ll.addView(tv); return ll; } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public int getGroupCount() { // TODO Auto-generated method stub return names.length; } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return names[groupPosition]; } @Override public long getCombinedGroupId(long groupId) { // TODO Auto-generated method stub return groupId; } @Override public long getCombinedChildId(long groupId, long childId) { // TODO Auto-generated method stub return childId; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return detail[groupPosition].length; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub TextView tv=new TextView(getApplicationContext()); tv.setText(detail[groupPosition][childPosition]); return tv; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return detail[groupPosition][childPosition]; } @Override public boolean areAllItemsEnabled() { // TODO Auto-generated method stub return false; } }; ExpandableListView ep=(ExpandableListView) findViewById(R.id.expandableListView1); ep.setAdapter(myadapter); } }onGroupCollapsed
ExpandableListView运用的关键在于 ExpandableListAdapter的设置。 ExpandableListAdapter中方法onGroupExpanded设置展开时的动作,onGroupCollapsed设置收起时的动作。 getGroupView需要获取Group的view,可以构造一个一维数组结合groupPosition使用。getChildView返回展开之后的view,可以构造一个二维数组,结合guropPosition和childPosition使用。
虽然很丑,但是已经能够说明问题了。
</pre><pre class="java" name="code">
相关文章推荐
- android学习:ExpandableListView的运用
- 解决android expandablelistview 里面嵌入gridview行数据重复问题
- android学习:ExpandableListView的运用
- android--ExpandableListView的简单运用
- 解决android expandablelistview 里面嵌入gridview行数据重复问题
- Android 自定义 ExpandableListView
- Android开发之ExpandableListView扩展(BaseExpandableListAdapter的使用)(完整版)
- Android UI开发第二篇——多级列表(ExpandableListView)
- ExpandableListView Android
- android ExpandableListView
- Android ExpandableListView长按事件完美解决
- Android中ExpandableListView的使用
- Android 自定义 ExpandableListView
- Android之ExpandableListView
- Android中ExpandableListView的使用
- android-ExpandableListView(2)
- Android中的ExpandableListView
- Android UI开发第二篇——多级列表(ExpandableListView)
- Android控件之ExpandableListView
- Android中ExpandableListView的使用