您的位置:首页 > 其它

二级列表ExpandableListView的使用

2016-08-11 17:16 447 查看
###布局

 <ExpandableListView

        android:id="@+id/elv"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent" >

    </ExpandableListView>

###MainActivity

public class MainActivity extends Activity {

 private ExpandableListView elv;

 String [] group=new String[]{

   "港台明星", "大陆明星", "欧美明星", "日韩明星"

 };

 String[][]child=new String[][]{

   {"刘德华","小猪","周总","林志玲","老游"},{"老程","栋栋","樊姐"},{"MJ","kobe","库里"},{"权志龙","宋仲基","允儿","倍倍"}

 };

 private WXAdapter adapter;

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  elv=(ExpandableListView) findViewById(R.id.elv);

  adapter=new WXAdapter(MainActivity.this,group,child);

  elv.setAdapter(adapter);

  elv.invalidateViews();

  elv.setGroupIndicator(getResources().getDrawable(R.drawable.indicator));

  elv.setOnChildClickListener(new OnChildClickListener() {

   

   @Override

   public boolean onChildClick(ExpandableListView parent, View v,

     int groupPosition, int childPosition, long id) {

    Toast.makeText(MainActivity.this, groupPosition+"二级列表监听"+childPosition, 0).show();

    return false;

   }

  });

  //一级列表关闭监听

  elv.setOnGroupCollapseListener(new OnGroupCollapseListener() {

   

   @Override

   public void onGroupCollapse(int groupPosition) {

    Toast.makeText(MainActivity.this, groupPosition+"组关闭了", 0).show();

    

    

   }

  });

  //一级列表展开监听

  elv.setOnGroupExpandListener(new OnGroupExpandListener() {

   

   @Override

   public void onGroupExpand(int groupPosition) {

    Toast.makeText(MainActivity.this, groupPosition+"组展开了", 0).show();

/**

     * 展开组时,关闭其他组

     */

    for(int i=0;i<adapter.getGroupCount();i++){

     if(i!=groupPosition){

      elv.collapseGroup(i);

     }

    }

    

   }

  });

 }

}

###适配器

public class WXAdapter extends BaseExpandableListAdapter {

 MainActivity mainActivity;

 String[]group;

 String[][]child;

 

 public WXAdapter(MainActivity mainActivity, String[] group, String[][] child) {

  this.mainActivity=mainActivity;

  this.group=group;

  this.child=child;

 }

 @Override

 public Object getChild(int groupPosition, int childPosition) {

  // TODO Auto-generated method stub

  return null;

 }

 @Override

 public long getChildId(int groupPosition, int childPosition) {

  // TODO Auto-generated method stub

  return 0;

 }

 //二级列表的视图

 @Override

 public View getChildView(int groupPosition, int childPosition,

   boolean isLastChild, View convertView, ViewGroup parent) {

  View view=View.inflate(mainActivity, android.R.layout.simple_expandable_list_item_2, null);

  TextView text2=(TextView) view.findViewById(android.R.id.text1);

  text2.setText(child[groupPosition][childPosition]);

  

  return view;

 }

 //当前一级列表下有多少个子列表

 @Override

 public int getChildrenCount(int groupPosition) {

  // TODO Auto-generated method stub

  return child[groupPosition].length;

 }

 @Override

 public Object getGroup(int groupPosition) {

  // TODO Auto-generated method stub

  return null;

 }

 //一级列表的个数

 @Override

 public int getGroupCount() {

  // TODO Auto-generated method stub

  return group.length;

 }

 @Override

 public long getGroupId(int groupPosition) {

  // TODO Auto-generated method stub

  return 0;

 }

 //一级列表的视图

 @Override

 public View getGroupView(int groupPosition, boolean isExpanded,

   View convertView, ViewGroup parent) {

  View view=View.inflate(mainActivity, android.R.layout.simple_expandable_list_item_2, null);

  TextView text1=(TextView) view.findViewById(android.R.id.text1);

  text1.setText(group[groupPosition]);

  return view;

 }

 @Override

 public boolean hasStableIds() {

  // TODO Auto-generated method stub

  return false;

 }

 @Override

 public boolean isChildSelectable(int groupPosition, int childPosition) {

  

  return true;

 }

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: