The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

           

          <?xml version="1.0" encoding="utf-8"?>
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width
          ="match_parent"
              android:layout_height
          ="match_parent"
              android:orientation
          ="vertical" >

              
          <ExpandableListView 
                  
          android:layout_width="fill_parent"
                  android:layout_height
          ="wrap_content"
                  android:id
          ="@+id/ecpandable"
                  
          />

          </LinearLayout>

           

          package cn.csdn.activity;

          import android.app.Activity;
          import android.os.Bundle;
          import android.view.View;
          import android.view.ViewGroup;
          import android.widget.AbsListView;
          import android.widget.BaseExpandableListAdapter;
          import android.widget.ExpandableListAdapter;
          import android.widget.ExpandableListView;
          import android.widget.ImageView;
          import android.widget.LinearLayout;
          import android.widget.TextView;

          public class ExpandableListViewActivity extends Activity{

              @Override
              
          protected void onCreate(Bundle savedInstanceState) {
                  
          // TODO Auto-generated method stub
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.expandable_layout);
                  
                  
          /**BaseExpandableListAdapter實現了ExpandableListAdapter*/
                  ExpandableListAdapter adapter 
          = new BaseExpandableListAdapter(){

          /**----------定義數組-------------------------------------------------------------------*/
                      
          private int[] images = new int[]{
                              R.drawable.ic_launcher,
                              R.drawable.stop,
                              R.drawable.play
                      }
          ;
                      
          private String[] armTypes = new String[]{
                              
          "神族","蟲族","人族"
                      }
          ;
                      
          private String[][] arms = new String[][]{
                              
          {"狂戰士","龍騎士","黑暗圣堂"},
                              
          {"小狗","飛龍","自爆妃子"},
                              
          {"步兵","傘兵","護士mm"}
                      }
          ;
                                  
          /*===========組元素表示可折疊的列表項,子元素表示列表項展開后看到的多個子元素項=============*/

          /**----------得到armTypes和arms中每一個元素的ID-------------------------------------------*/
                      
                      
          //獲取組在給定的位置編號,即armTypes中元素的ID
                      @Override
                      
          public long getGroupId(int groupPosition) {
                          
          return groupPosition;
                      }

                  
                      
          //獲取在給定的組的兒童的ID,就是arms中元素的ID
                      @Override
                      
          public long getChildId(int groupPosition, int childPosition) {
                          
          return childPosition;
                      }

                      
          /**----------根據上面得到的ID的值,來得到armTypes和arms中元素的個數 ------------------------*/
                      
                      
          //獲取的群體數量,得到armTypes里元素的個數
                      @Override
                      
          public int getGroupCount() {
                          
          return armTypes.length;
                      }

                      
                      
          //取得指定組中的兒童人數,就是armTypes中每一個種族它軍種的個數
                      @Override
                      
          public int getChildrenCount(int groupPosition) {
                          
          return arms[groupPosition].length;
                      }

                      
          /**----------利用上面getGroupId得到ID,從而根據ID得到armTypes中的數據,并填到TextView中 -----*/
                      
                      
          //獲取與給定的組相關的數據,得到數組armTypes中元素的數據
                      @Override
                      
          public Object getGroup(int groupPosition) {
                          
          return armTypes[groupPosition];
                      }


                      
          //獲取一個視圖顯示給定組,存放armTypes
                      @Override
                      
          public View getGroupView(int groupPosition, boolean isExpanded,
                              View convertView, ViewGroup parent) 
          {
                          TextView textView 
          = getTextView();//調用定義的getTextView()方法
                          textView.setText(getGroup(groupPosition).toString());//添加數據
                          return textView;
                      }


          /**----------利用上面getChildId得到ID,從而根據ID得到arms中的數據,并填到TextView中---------*/
                      
                      
          //獲取與孩子在給定的組相關的數據,得到數組arms中元素的數據
                      @Override
                      
          public Object getChild(int groupPosition, int childPosition) {
                          
          return arms[groupPosition][childPosition];
                      }

                      
                      
          //獲取一個視圖顯示在給定的組 的兒童的數據,就是存放arms
                      @Override
                      
          public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
                              View convertView, ViewGroup parent) 
          {
                          LinearLayout ll 
          = new LinearLayout(ExpandableListViewActivity.this);
                          ll.setOrientation(
          0);//定義為縱向排列
                          ImageView logo = new ImageView(ExpandableListViewActivity.this);
                          logo.setImageResource(images[groupPosition]);
          //添加圖片
                          ll.addView(logo);
                          TextView textView 
          = getTextView();//調用定義的getTextView()方法
                          textView.setText(getChild(groupPosition,childPosition).toString());//添加數據
                          ll.addView(textView);
                          
          return ll;
                      }

                      
          /**------------------自定義一個設定TextView屬性的方法----------------------------------------------*/
                      
                      
          //定義一個TextView
                      private TextView getTextView(){
                          AbsListView.LayoutParams lp 
          = new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,40);
                          TextView textView 
          = new TextView(ExpandableListViewActivity.this);
                          textView.setLayoutParams(lp);
                          textView.setPadding(
          36000);
                          textView.setTextSize(
          20);
                          
          return textView;
                      }

                      
          /**-------------------其他設置-------------------------------------------------------------------*/
                      
                      
          //孩子在指定的位置是可選的,即:arms中的元素是可點擊的
                      @Override
                      
          public boolean isChildSelectable(int groupPosition,
                              
          int childPosition) {
                          
          return true;
                      }


                      
          //表示孩子是否和組ID是跨基礎數據的更改穩定
                      public boolean hasStableIds() {
                          
          return true;
                      }

                  }
          ;
                      
                      
          /**使用適配器*/
                      ExpandableListView expandListView 
          = (ExpandableListView) this.findViewById(R.id.ecpandable);
                      expandListView.setAdapter(adapter);
              }


              
          }


          posted on 2012-02-29 19:16 Eric_jiang 閱讀(23256) 評論(2)  編輯  收藏 所屬分類: Android

          Feedback

          # re: BaseExpandableListAdapter的用法 2013-09-06 18:52
          哥們 你改的 好干凈  回復  更多評論
            

          # re: BaseExpandableListAdapter的用法 2015-07-07 11:25 游客
          組view和子View,反了吧??  回復  更多評論
            

          主站蜘蛛池模板: 长春市| 栖霞市| 东丰县| 宁远县| 柞水县| 孟村| 湖州市| 建水县| 囊谦县| 德阳市| 金堂县| 南宫市| 海门市| 肥西县| 江山市| 吴桥县| 建平县| 板桥市| 汾西县| 手机| 平安县| 南江县| 明光市| 当雄县| 沂南县| 安平县| 通江县| 建阳市| 广西| 咸丰县| 唐山市| 都兰县| 广宁县| 唐海县| 德安县| 抚州市| 鄢陵县| 武穴市| 屏山县| 聂荣县| 黑水县|