日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ExpandableListView用法的一个简单小例子

發(fā)布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ExpandableListView用法的一个简单小例子 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

喜歡顯示好友QQ那樣的列表,可以展開,可以收起,在android中,以往用的比較多的是listview,雖然可以實現(xiàn)列表的展示,但在某些情況下,我們還是希望用到可以分組并實現(xiàn)收縮的列表,那就要用到android的ExpandableListView,今天研究了一下這個的用法,也參考了很多資料動手寫了一個小demo,實現(xiàn)了基本的功能,但界面優(yōu)化方面做得還不夠好,有待改進,素材采用了Q版三國殺武將的圖片,很有愛哈哈,下面直接上效果圖以及源代碼~!?

? ? ? ? ?? ? ? ? ??

?

?

main.xml的布局很簡單啦,只是一個ExpandableListView 就OK了

但值得簡單說下的是?android:cacheColorHint="#00000000",這個設置可以去除拖動view時背景變成黑色的效果

android:listSelector="#00000000" ,可以去除選中時的黃色底色

?

?1?<?xml?version="1.0"?encoding="utf-8"?>
?2?<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
?3?????android:layout_width="fill_parent"
?4?????android:layout_height="fill_parent"
?5?????android:orientation="vertical"?>
?6?????<ExpandableListView?
?7?????????android:id="@+id/list"
?8?????????android:layout_width="fill_parent"
?9?????????android:layout_height="fill_parent"
10?????????android:background="#ffffff"
11?????????android:cacheColorHint="#00000000"
12?????????android:listSelector="#00000000"?
13?????????>
14? ? ?</ExpandableListView>?
15?</LinearLayout>??
16?

?


java代碼:?

?

package?com.eyu.activity_test;

import?android.app.Activity;
import?android.graphics.Color;
import?android.os.Bundle;
import?android.view.Gravity;
import?android.view.View;
import?android.view.ViewGroup;
import?android.view.Window;
import?android.widget.AbsListView;
import?android.widget.BaseExpandableListAdapter;
import?android.widget.ExpandableListAdapter;
import?android.widget.ExpandableListView;
import?android.widget.ExpandableListView.OnChildClickListener;
import?android.widget.ImageView;
import?android.widget.LinearLayout;
import?android.widget.TextView;
import?android.widget.Toast;

public?class?ExpandableList?extends?Activity{

????protected?void?onCreate(Bundle?savedInstanceState)?{
????????//?TODO?Auto-generated?method?stub
????????super.onCreate(savedInstanceState);
????????requestWindowFeature(Window.FEATURE_NO_TITLE);
????????setContentView(R.layout.main);

????????final?ExpandableListAdapter?adapter?=?new?BaseExpandableListAdapter()?{
????????????//設置組視圖的圖片
????????????int[]?logos?=?new?int[]?{?R.drawable.wei,?R.drawable.shu,R.drawable.wu};
????????????//設置組視圖的顯示文字
????????????private?String[]?generalsTypes?=?new?String[]?{?"魏",?"蜀",?"吳"?};
????????????//子視圖顯示文字
????????????private?String[][]?generals?=?new?String[][]?{
????????????????????{?"夏侯惇",?"甄姬",?"許褚",?"郭嘉",?"司馬懿",?"楊修"?},
????????????????????{?"馬超",?"張飛",?"劉備",?"諸葛亮",?"黃月英",?"趙云"?},
????????????????????{?"呂蒙",?"陸遜",?"孫權",?"周瑜",?"孫尚香"?}

????????????};
????????????//子視圖圖片
????????????public?int[][]?generallogos?=?new?int[][]?{
????????????????????{?R.drawable.xiahoudun,?R.drawable.zhenji,
????????????????????????????R.drawable.xuchu,?R.drawable.guojia,
????????????????????????????R.drawable.simayi,?R.drawable.yangxiu?},
????????????????????{?R.drawable.machao,?R.drawable.zhangfei,
????????????????????????????R.drawable.liubei,?R.drawable.zhugeliang,
????????????????????????????R.drawable.huangyueying,?R.drawable.zhaoyun?},
????????????????????{?R.drawable.lvmeng,?R.drawable.luxun,?R.drawable.sunquan,
????????????????????????????R.drawable.zhouyu,?R.drawable.sunshangxiang?}?};
????????????
????????????//自己定義一個獲得文字信息的方法
????????????TextView?getTextView()?{
????????????????AbsListView.LayoutParams?lp?=?new?AbsListView.LayoutParams(
????????????????????????ViewGroup.LayoutParams.FILL_PARENT,?64);
????????????????TextView?textView?=?new?TextView(
????????????????????????ExpandableList.this);
????????????????textView.setLayoutParams(lp);
????????????????textView.setGravity(Gravity.CENTER_VERTICAL);
????????????????textView.setPadding(36,?0,?0,?0);
????????????????textView.setTextSize(20);
????????????????textView.setTextColor(Color.BLACK);
????????????????return?textView;
????????????}

????????????
????????????//重寫ExpandableListAdapter中的各個方法
????????????@Override
????????????public?int?getGroupCount()?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?generalsTypes.length;
????????????}

????????????@Override
????????????public?Object?getGroup(int?groupPosition)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?generalsTypes[groupPosition];
????????????}

????????????@Override
????????????public?long?getGroupId(int?groupPosition)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?groupPosition;
????????????}

????????????@Override
????????????public?int?getChildrenCount(int?groupPosition)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?generals[groupPosition].length;
????????????}

????????????@Override
????????????public?Object?getChild(int?groupPosition,?int?childPosition)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?generals[groupPosition][childPosition];
????????????}

????????????@Override
????????????public?long?getChildId(int?groupPosition,?int?childPosition)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?childPosition;
????????????}

????????????@Override
????????????public?boolean?hasStableIds()?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?true;
????????????}

????????????@Override
????????????public?View?getGroupView(int?groupPosition,?boolean?isExpanded,
????????????????????View?convertView,?ViewGroup?parent)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????LinearLayout?ll?=?new?LinearLayout(
????????????????????????ExpandableList.this);
????????????????ll.setOrientation(0);
????????????????ImageView?logo?=?new?ImageView(ExpandableList.this);
????????????????logo.setImageResource(logos[groupPosition]);
????????????????logo.setPadding(50,?0,?0,?0);
????????????????ll.addView(logo);
????????????????TextView?textView?=?getTextView();
????????????????textView.setTextColor(Color.BLACK);
????????????????textView.setText(getGroup(groupPosition).toString());
????????????????ll.addView(textView);

????????????????return?ll;
????????????}

????????????@Override
????????????public?View?getChildView(int?groupPosition,?int?childPosition,
????????????????????boolean?isLastChild,?View?convertView,?ViewGroup?parent)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????LinearLayout?ll?=?new?LinearLayout(
????????????????????????ExpandableList.this);
????????????????ll.setOrientation(0);
????????????????ImageView?generallogo?=?new?ImageView(
????????????????????????ExpandableList.this);
????????????????generallogo
????????????????????????.setImageResource(generallogos[groupPosition][childPosition]);
????????????????ll.addView(generallogo);
????????????????TextView?textView?=?getTextView();
????????????????textView.setText(getChild(groupPosition,?childPosition)
????????????????????????.toString());
????????????????ll.addView(textView);
????????????????return?ll;
????????????}

????????????@Override
????????????public?boolean?isChildSelectable(int?groupPosition,
????????????????????int?childPosition)?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?true;
????????????}

????????};

????????ExpandableListView?expandableListView?=?(ExpandableListView)?findViewById(R.id.list);
????????expandableListView.setAdapter(adapter);
????????
????????
????????//設置item點擊的監(jiān)聽器
????????expandableListView.setOnChildClickListener(new?OnChildClickListener()?{

????????????@Override
????????????public?boolean?onChildClick(ExpandableListView?parent,?View?v,
????????????????????int?groupPosition,?int?childPosition,?long?id)?{

????????????????Toast.makeText(
????????????????????????ExpandableList.this,
????????????????????????"你點擊了"?+?adapter.getChild(groupPosition,?childPosition),
????????????????????????Toast.LENGTH_SHORT).show();

????????????????return?false;
????????????}
????????});
????}
}


?

總結(jié)

以上是生活随笔為你收集整理的ExpandableListView用法的一个简单小例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。