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,反了吧??  回復  更多評論
            

          主站蜘蛛池模板: 都匀市| 大石桥市| 西昌市| 当雄县| 盐池县| 铅山县| 禄劝| 三江| 诸城市| 昌都县| 呈贡县| 蓬莱市| 静宁县| 天门市| 常熟市| 公主岭市| 凤山县| 安龙县| 兴海县| 馆陶县| 襄汾县| 通州区| 通道| 治县。| 永丰县| 乌拉特后旗| 三亚市| 鄢陵县| 长治市| 吴川市| 平湖市| 湟源县| 襄垣县| 高州市| 萨迦县| 扎鲁特旗| 西华县| 呼图壁县| 平邑县| 三亚市| 正镶白旗|