欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分享Android中ExpandableListView控件使用教程

 更新時間:2015年12月23日 10:57:48   作者:cjjky  
這篇文章主要介紹了Android中ExpandableListView控件使用教程,可以實現(xiàn)二級列表展示效果,需要的朋友可以參考下

本文采用一個Demo來展示Android中ExpandableListView控件的使用,如如何在組/子ListView中綁定數(shù)據(jù)源。直接上代碼如下:
程序結(jié)構(gòu)圖:

layout目錄下的 main.xml 文件源碼如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"> 
  <!-- 我們會自己定義listview的顯示方式(在另外一個布局文件里邊)不用默認(rèn)的方式  
     如果自定義listview的顯示方式這里這個android:id="@id/android:list" 必須這樣寫 --> 
  <!-- android:drawSelectOnTop="false"此屬性用來設(shè)置listview上的背景顏色會不會 
   擋?。ǜ采w)內(nèi)容 , 如果這是為false就表示不會覆蓋掉 -->  
  <ExpandableListView  
    android:id="@id/android:list"         
    android:layout_width="fill_parent"         
    android:layout_height="wrap_content"        
    android:layout_weight="1"         
    android:drawSelectorOnTop="false"/>  
</LinearLayout> 

包com.andyidea.demo中ContactsActivity.java源碼如下:

package com.andyidea.demo; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import android.app.ExpandableListActivity; 
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.TextView; 
 
public class ContactsActivity extends ExpandableListActivity { 
   
  List<String> group;      //組列表 
  List<List<String>> child;   //子列表 
  ContactsInfoAdapter adapter; //數(shù)據(jù)適配器 
   
  /** Called when the activity is first created. */ 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); //設(shè)置為無標(biāo)題 
    setContentView(R.layout.main); 
    getExpandableListView().setBackgroundResource(R.drawable.default_bg); 
     
    initializeData(); 
    getExpandableListView().setAdapter(new ContactsInfoAdapter()); 
    getExpandableListView().setCacheColorHint(0); //設(shè)置拖動列表的時候防止出現(xiàn)黑色背景 
  } 
   
  /** 
   * 初始化組、子列表數(shù)據(jù) 
   */ 
  private void initializeData(){ 
    group = new ArrayList<String>(); 
    child = new ArrayList<List<String>>(); 
     
    addInfo("Andy",new String[]{"male","138123***","GuangZhou"}); 
    addInfo("Fairy",new String[]{"female","138123***","GuangZhou"}); 
    addInfo("Jerry",new String[]{"male","138123***","ShenZhen"}); 
    addInfo("Tom",new String[]{"female","138123***","ShangHai"}); 
    addInfo("Bill",new String[]{"male","138231***","ZhanJiang"}); 
     
  } 
   
  /** 
   * 模擬給組、子列表添加數(shù)據(jù) 
   * @param g-group 
   * @param c-child 
   */ 
  private void addInfo(String g,String[] c){ 
    group.add(g); 
    List<String> childitem = new ArrayList<String>(); 
    for(int i=0;i<c.length;i++){ 
      childitem.add(c[i]); 
    } 
    child.add(childitem); 
  } 
   
  class ContactsInfoAdapter extends BaseExpandableListAdapter{ 
 
     
    //-----------------Child----------------// 
    @Override 
    public Object getChild(int groupPosition, int childPosition) { 
      return child.get(groupPosition).get(childPosition); 
    } 
     
    @Override 
    public long getChildId(int groupPosition, int childPosition) { 
      return childPosition; 
    } 
     
    @Override 
    public int getChildrenCount(int groupPosition) { 
      return child.get(groupPosition).size(); 
    } 
     
    @Override 
    public View getChildView(int groupPosition, int childPosition, 
        boolean isLastChild, View convertView, ViewGroup parent) { 
      String string = child.get(groupPosition).get(childPosition);  
      return getGenericView(string); 
    } 
     
    //----------------Group----------------// 
    @Override 
    public Object getGroup(int groupPosition) { 
      return group.get(groupPosition); 
    }         
 
    @Override 
    public long getGroupId(int groupPosition) { 
      return groupPosition; 
    }   
     
    @Override 
    public int getGroupCount() { 
      return group.size(); 
    }   
     
    @Override 
    public View getGroupView(int groupPosition, boolean isExpanded, 
        View convertView, ViewGroup parent) { 
      String string = group.get(groupPosition);  
      return getGenericView(string); 
    } 
 
    //創(chuàng)建組/子視圖  
    public TextView getGenericView(String s) {  
      // Layout parameters for the ExpandableListView  
      AbsListView.LayoutParams lp = new AbsListView.LayoutParams(  
          ViewGroup.LayoutParams.FILL_PARENT, 40); 
  
      TextView text = new TextView(ContactsActivity.this);  
      text.setLayoutParams(lp);  
      // Center the text vertically  
      text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);  
      // Set the text starting position  
      text.setPadding(36, 0, 0, 0);  
        
      text.setText(s);  
      return text;  
    }  
     
     
    @Override 
    public boolean hasStableIds() { 
      // TODO Auto-generated method stub 
      return false; 
    }     
 
    @Override 
    public boolean isChildSelectable(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return true; 
    } 
     
  } 
} 

最后,程序運(yùn)行后截圖如下:

希望本文所述對大家學(xué)習(xí)Android軟件編程有所幫助。

相關(guān)文章

  • Android Studio中一套代碼多渠道打包的實現(xiàn)方法

    Android Studio中一套代碼多渠道打包的實現(xiàn)方法

    這篇文章主要介紹了Android Studio中一套代碼多渠道打包的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-05-05
  • Android NDK開發(fā)入門

    Android NDK開發(fā)入門

    本文主要對NDK產(chǎn)生的背景、使用NDK原因、NDK簡介、NDK開發(fā)環(huán)境的搭建、如何運(yùn)行NDK提供的事例demo等進(jìn)行了詳細(xì)的介紹。具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • Android 7.0中拍照和圖片裁剪適配的問題詳解

    Android 7.0中拍照和圖片裁剪適配的問題詳解

    這篇文章主要介紹了Android 7.0中拍照和圖片裁剪適配的相關(guān)問題,文中通過示例代碼介紹的很詳細(xì),對大家具有一定的參考價值,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-02-02
  • Flutter打包apk報錯Your?app?isn't?using?AndroidX解決

    Flutter打包apk報錯Your?app?isn't?using?AndroidX解決

    這篇文章主要為大家介紹了Flutter打包apk報錯Your?app?isn't?using?AndroidX解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Android實現(xiàn)簡單點贊動畫

    Android實現(xiàn)簡單點贊動畫

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)簡單點贊動畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android studio 將字符串寫入本地的操作方法

    Android studio 將字符串寫入本地的操作方法

    本文通過實例代碼給大家介紹了Android studio 將字符串寫入本地的操作方法,需要的朋友可以參考下
    2018-07-07
  • Kotlin編程基礎(chǔ)數(shù)據(jù)類型示例詳解

    Kotlin編程基礎(chǔ)數(shù)據(jù)類型示例詳解

    這篇文章主要為大家介紹了Kotlin編程基礎(chǔ)數(shù)據(jù)類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Android微信右滑退出功能的實現(xiàn)代碼

    Android微信右滑退出功能的實現(xiàn)代碼

    這篇文章主要介紹了Android微信右滑退出功能的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Android開發(fā)實現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法

    Android開發(fā)實現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法

    這篇文章主要介紹了Android開發(fā)實現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法,涉及Android彈出窗口功能、布局及屬性設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Android實現(xiàn)拍照功能

    Android實現(xiàn)拍照功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)拍照功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論