当前位置: 移动技术网 > 移动技术>移动开发>Android > Android中ExpandableListView使用示例详解

Android中ExpandableListView使用示例详解

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例为大家分享了expandablelistview使用示例,供大家参考,具体内容如下

mainactivity:

public class expandable_test extends activity {
  private expandablelistview listview;
  private map<string, list<string>> dataset = new hashmap<>();
  private string[] parentlist = new string[]{"第一个菜单", "第二个菜单"};

  private expandablelistviewadpter adpter;
  private context mcontext = this;
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_expandable_test);
    listview=(expandablelistview)findviewbyid(r.id.expandablelistviewtext);
    adpter=new expandablelistviewadpter(this,parentlist);
    listview.setadapter(adpter);
  }

}

mainactivity.xml:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.fae.mobile.testactivity.expandable_test">
<expandablelistview
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/expandablelistviewtext">

</expandablelistview>
</linearlayout>

expandablelistviewadpter:

public class expandablelistviewadpter extends baseexpandablelistadapter {
  private context mcontext;
  private map<string, list<string>> dataset = new hashmap<>();
  private string[] parentlist = new string[]{"第一个菜单", "第二个菜单"};
  private string[][] chdrenlist=new string[][]
      {{"菜单1","菜单1","菜单1","菜单1","菜单1","菜单1"},{"菜单2","菜单2","菜单2","菜单2","菜单2"}};

  public expandablelistviewadpter(context context, string[] parentlist){
    this.mcontext=context;
    this.dataset=dataset;
    this.parentlist=parentlist;
  }

  @override
  public int getgroupcount() {
    return parentlist.length;
  }

  @override
  public int getchildrencount(int groupposition) {
    return chdrenlist[groupposition].length;
  }

  @override
  public object getgroup(int groupposition) {
    return parentlist[groupposition];
  }

  @override
  public object getchild(int groupposition, int childposition) {
    return chdrenlist[groupposition][childposition];
  }

  @override
  public long getgroupid(int groupposition) {
    return groupposition;
  }

  @override
  public long getchildid(int groupposition, int childposition) {
    return childposition;
  }

  @override
  public boolean hasstableids() {
    return true;
  }

  @override
  public view getgroupview(int groupposition, boolean isexpanded, view convertview, viewgroup parent) {
    groupviewholder holder=null;
    if(convertview==null){
      convertview = layoutinflater.from(mcontext).inflate(r.layout.itemlayoutexpandable, null);
      holder=new groupviewholder();
      holder.text=(textview)convertview.findviewbyid(r.id.item_text);
      convertview.settag(holder);
    }
    else {
      holder=(groupviewholder)convertview.gettag();
    }
    holder.text.settext(parentlist[groupposition]);
    return convertview;
  }

  @override
  public view getchildview(int groupposition, int childposition, boolean islastchild, view convertview, viewgroup parent) {
    childviewholder holder=null;
      if(convertview==null){
        convertview = layoutinflater.from(mcontext).inflate(r.layout.itemlayoutexpandable, null);
        holder=new childviewholder();
        holder.text=(textview)convertview.findviewbyid(r.id.item_text);
        convertview.settag(holder);
    }
    else {
        holder=(childviewholder)convertview.gettag();
      }
      holder.text.settext(chdrenlist[groupposition][childposition]);
    return convertview;
  }

  @override
  public boolean ischildselectable(int groupposition, int childposition) {
    return true;
  }
  class groupviewholder {
    textview text;
  }

  class childviewholder {
    textview text;
  }
}

item.xml:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
<textview
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:gravity="bottom"
  android:id="@+id/item_text"/>
</linearlayout>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网