ExpandableListView 模拟QQ好友分组 小实例

 

 

person_layout.xml部分

 

<ImageView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:id="@+id/imageView"

       android:src="@mipmap/ic_launcher"

       android:layout_alignParentTop="true"

       android:layout_alignParentStart="true" />

 

 

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="昵称"

       android:textSize="20sp"

       android:id="@+id/textView_name"

       android:layout_alignParentTop="true"

       android:layout_toEndOf="@+id/imageView" />

 

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="说话"

       android:textSize="15sp"

       android:id="@+id/textView_say"

       android:layout_below="@+id/textView_name"

       android:layout_toEndOf="@+id/imageView" />

 

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="15:30"

       android:textSize="12sp"

       android:id="@+id/textView_time"

       android:layout_alignBottom="@+id/textView_say"

       android:layout_alignParentEnd="true" />

 

 

</RelativeLayout>


 

————————————————————————————————————————————————————————————

group_layout.xml

 

 android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:paddingLeft="30dp">

 

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="New Text"

       android:textSize="24sp"

       android:id="@+id/textView_group" />

</LinearLayout>


 

 

MainActivity 布局

 <ExpandableListView

       android:layout_width="match_parent"

       android:layout_height="match_parent"

       android:id="@+id/ex_listView"></ExpandableListView>

 

</RelativeLayout>


————————————————————————————————————————————————————————

Activity代码部分:

 

 

public class Main2Activity extendsAppCompatActivity {

       private ExpandableListView ex_ListView;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main2);

 

       ex_ListView = (ExpandableListView) findViewById(R.id.ex_listView);

       initData();

       ex_ListView.setAdapter(new DataAdapter());

    }

 

 

   String[] groups = {"英雄","美人"};

   List<List<Person>> childs = new ArrayList<>();

   public void initData(){

       List<Person> man = new ArrayList<>();

       List<Person> woman = new ArrayList<>();

 

       man.add(new Person("马哥","长点眼色儿...","09:10",R.mipmap.ic_launcher));

       man.add(new Person("照亮","今天下浮发您微信了","6:10",R.mipmap.ic_launcher));

       man.add(new Person("国栋","CC放个二联纸","13;10",R.mipmap.ic_launcher));

       man.add(new Person("三豆","带钢提成大家都有份啊","8:30",R.mipmap.ic_launcher));

       woman.add(new Person("CC","到点儿,吃啥呢?","11:55",R.mipmap.ic_launcher));

       woman.add(new Person("会会","我好像又瘦了","7:55",R.mipmap.ic_launcher));

       woman.add(new Person("勾神","周一不值班了!","8:30",R.mipmap.ic_launcher));

       woman.add(new Person("明星","张翰真帅!","23:30",R.mipmap.ic_launcher));

 

       childs.add(man);

       childs.add(woman);

    }

 

   private class  DataAdapter extendsBaseExpandableListAdapter{

 

       @Override

       public int getGroupCount() {

           return groups.length;

       }

 

       @Override

       public int getChildrenCount(int groupPosition) {

           return childs.get(groupPosition).size();

       }

 

       @Override

       public Object getGroup(int groupPosition) {

           return groups[groupPosition];

       }

 

       @Override

       public Object getChild(int groupPosition, int childPosition) {

           return childs.get(groupPosition).get(childPosition);

       }

 

       @Override

       public long getGroupId(int groupPosition) {

           return groupPosition;

        }

 

       @Override

       public long getChildId(int groupPosition, int childPosition) {

           return childPosition;

       }

 

       @Override

       public boolean hasStableIds() {

           return false;

       }

 

       @Override

        public View getGroupView(intgroupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

           if(convertView==null){

                convertView =getLayoutInflater().inflate(R.layout.group_layout,null);

 

           }

 

           TextView textView_group =(TextView) convertView.findViewById(R.id.textView_group);

           textView_group.setText(groups[groupPosition]);

           return convertView;

       }

 

       @Override

       public View getChildView(int groupPosition, int childPosition, booleanisLastChild, View convertView, ViewGroup parent) {

           if(convertView==null){

                convertView =getLayoutInflater().inflate(R.layout.person_layout,null);

           }

           ImageView imageView = (ImageView)convertView.findViewById(R.id.imageView);

           TextView textView_name = (TextView)convertView.findViewById(R.id.textView_name);

           TextView textView_say = (TextView)convertView.findViewById(R.id.textView_say);

           TextView textView_time = (TextView)convertView.findViewById(R.id.textView_time);

 

           List<Person> list = childs.get(groupPosition);

           Person p = list.get(childPosition);

           imageView.setImageResource(p.getIcon());

           textView_name.setText(p.getName());

           textView_say.setText(p.getSay());

           textView_time.setText(p.getTime());

           return convertView;

       }

 

       @Override

       public boolean isChildSelectable(int groupPosition, int childPosition) {

 

           return true;

       }

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值