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

Android開發(fā)實(shí)現(xiàn)ListView點(diǎn)擊展開收起效果示例

 更新時(shí)間:2019年03月27日 14:08:41   作者:水中魚之1999  
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)ListView點(diǎn)擊展開收起效果,結(jié)合實(shí)例形式分析了Android ListView控件的布局及事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Android開發(fā)實(shí)現(xiàn)ListView點(diǎn)擊展開收起效果。分享給大家供大家參考,具體如下:

廢話不說先上效果:

實(shí)際上這是采用一個(gè)ExpandableListView實(shí)現(xiàn)的

布局文件很簡單:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  tools:context=".MainActivity" >
  <!--提示框-->
  <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="請選擇您的類型:"
    android:textSize="30sp"
    android:textColor="#ffffffff"
    android:paddingLeft="5dp"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:background="#ff000000"/>
  <!--定義一個(gè)ExpandableListView組件-->
  <ExpandableListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  </ExpandableListView>
</LinearLayout>

然后就是具體實(shí)現(xiàn):

這里主要是添加幾個(gè)必須的屬性 大多數(shù)方法不用重寫

參考我代碼中的位置稍加改動(dòng)就行

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //創(chuàng)建一個(gè)ExpandableListAdapter對象
    final ExpandableListAdapter adapter = new ExpandableListAdapter() {
      int[] logos = new int[]{
          R.drawable.human1st,
          R.drawable.human1st,
          R.drawable.human2nd,
          R.drawable.human3rd
      };
      private String[] humanTypes = new String[]{
          "不是人","聰明人","普通人","我這樣的人"
      };
      private String[][] humans = new String[][]{
          {"上仙","大神","荷蘭豬"},
          {"超人","一般聰明人","假的聰明人"},
          {"努力的人","快樂的普通人","苦逼的普通人"},
          {"天才","傻逼","蠢萌"}
      };
      //獲得制定組的位置、指定子列表項(xiàng)處的字列表項(xiàng)數(shù)據(jù)
      private TextView getTextView(){
        AbsListView.LayoutParams layoutParams =
            new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,164);
        TextView textView = new TextView(MainActivity.this);
        textView.setLayoutParams(layoutParams);
        textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        textView.setPadding(36,0,0,0);
        textView.setTextSize(30);
        return textView;
      }
      @Override
      public void registerDataSetObserver(DataSetObserver observer) {
      }
      @Override
      public void unregisterDataSetObserver(DataSetObserver observer) {
      }
      @Override
      public int getGroupCount() {
        return humanTypes.length;
      }
      @Override
      public int getChildrenCount(int groupPosition) {
        return humans[groupPosition].length;
      }
      //獲取制定組位置處的組數(shù)據(jù)
      @Override
      public Object getGroup(int groupPosition) {
        return humanTypes[groupPosition];
      }
      @Override
      public Object getChild(int groupPosition, int childPosition) {
        return humans[groupPosition][childPosition];
      }
      @Override
      public long getGroupId(int groupPosition) {
        return groupPosition;
      }
      @Override
      public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
      }
      @Override
      public boolean hasStableIds() {
        return true;
      }
      //該方法決定每個(gè)組選項(xiàng)的外觀
      @Override
      public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        LinearLayout linearLayout = new LinearLayout(MainActivity.this);
        linearLayout.setOrientation(LinearLayout.HORIZONTAL);
        ImageView logo = new ImageView(MainActivity.this);
        logo.setImageResource(logos[groupPosition]);
        linearLayout.addView(logo);
        TextView textView = getTextView();
        textView.setText(getGroup(groupPosition).toString());
        linearLayout.addView(textView);
//        linearLayout.setMinimumHeight(50);
        return linearLayout;
      }
      @Override
      public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        TextView textView = getTextView();
        textView.setText(getChild(groupPosition,childPosition).toString());
        return textView;
      }
      @Override
      public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
      }
      @Override
      public boolean areAllItemsEnabled() {
        return false;
      }
      @Override
      public boolean isEmpty() {
        return false;
      }
      @Override
      public void onGroupExpanded(int groupPosition) {
      }
      @Override
      public void onGroupCollapsed(int groupPosition) {
      }
      @Override
      public long getCombinedChildId(long groupId, long childId) {
        return 0;
      }
      @Override
      public long getCombinedGroupId(long groupId) {
        return 0;
      }
    };
    ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.list);
    expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
      @Override
      public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Toast.makeText(MainActivity.this,"你是一個(gè):" +
            adapter.getChild(groupPosition,childPosition),Toast.LENGTH_SHORT).show();
        return true;
      }
    });
    expandableListView.setAdapter(adapter);
  }
}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android控件用法總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫操作技巧總結(jié)》及《Android資源操作技巧匯總

希望本文所述對大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android入門之Toast的使用教程

    Android入門之Toast的使用教程

    Toast是一種很方便的消息提示框,會在 屏幕中顯示一個(gè)消息提示框,沒任何按鈕,也不會獲得焦點(diǎn)一段時(shí)間過后自動(dòng)消失!非常常用!本文就來通過一個(gè)例子把Toast的使用講透
    2022-11-11
  • Android觸摸事件傳遞機(jī)制初識

    Android觸摸事件傳遞機(jī)制初識

    這篇文章主要為大家詳細(xì)介紹了Android觸摸事件的傳遞機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • android水平循環(huán)滾動(dòng)控件使用詳解

    android水平循環(huán)滾動(dòng)控件使用詳解

    這篇文章主要為大家詳細(xì)介紹了android水平循環(huán)滾動(dòng)控件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android實(shí)現(xiàn)鬧鐘功能小Dome

    Android實(shí)現(xiàn)鬧鐘功能小Dome

    本篇文章主要介紹了Android實(shí)現(xiàn)鬧鐘功能小Dome,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Android 開發(fā)使用PopupWindow實(shí)現(xiàn)彈出警告框的復(fù)用類示例

    Android 開發(fā)使用PopupWindow實(shí)現(xiàn)彈出警告框的復(fù)用類示例

    這篇文章主要介紹了Android 開發(fā)使用PopupWindow實(shí)現(xiàn)彈出警告框的復(fù)用類,結(jié)合實(shí)例形式分析了Android基于PopupWindow彈出警告框的復(fù)用類具體布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-05-05
  • Android Bitmap和Drawable的對比

    Android Bitmap和Drawable的對比

    這篇文章主要介紹了Android Bitmap和Drawable的對比的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Android中使用AsyncTask做下載進(jìn)度條實(shí)例代碼

    Android中使用AsyncTask做下載進(jìn)度條實(shí)例代碼

    這篇文章主要介紹了Android中使用AsyncTask做下載進(jìn)度條實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以參考下
    2017-01-01
  • Android 組件樣式定制方法詳解

    Android 組件樣式定制方法詳解

    這篇文章主要介紹了Android 組件樣式定制方法詳解,需要的朋友可以參考下
    2015-10-10
  • Convert WebP to PNG using java

    Convert WebP to PNG using java

    本文主要介紹Convert WebP to PNG using java,這里對 WebP 做了詳細(xì)說明,并講解Linux 環(huán)境下WebP 轉(zhuǎn)png格式的示例,有興趣的小伙伴可以參考下
    2016-08-08
  • Kotlin泛型的型變之路演變示例詳解

    Kotlin泛型的型變之路演變示例詳解

    這篇文章主要為大家介紹了Kotlin泛型的型變之路演變示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評論