第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 ExpandableListView 中制作兩個(gè)或三個(gè)文本視圖?

如何在 ExpandableListView 中制作兩個(gè)或三個(gè)文本視圖?

心有法竹 2023-09-20 17:26:10
我正在為 android 創(chuàng)建一個(gè)程序,在應(yīng)用程序中,我使用 ExpandableListview 和 BaseExpandableListViewAdapter,默認(rèn)情況下此適配器使用一個(gè) TextView,我想在子 listItem 上創(chuàng)建一些(兩個(gè)或三個(gè))TextView,請(qǐng)幫助我編寫(xiě)代碼,該怎么辦寫(xiě)在活動(dòng)中?XML 布局列表項(xiàng)子文件:<?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="wrap_content"    android:orientation="vertical" >    <androidx.cardview.widget.CardView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="5dp">        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_margin="5dp"            android:orientation="vertical">        <TextView            android:id="@+id/lblListItem"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:paddingLeft="10dp"            android:paddingTop="3dp"            android:paddingBottom="3dp"            android:textSize="15dip" />        <TextView            android:id="@+id/lblListItem2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:paddingLeft="10dp"            android:paddingTop="3dp"            android:paddingBottom="3dp"            android:textSize="15dip" />        </LinearLayout>    </androidx.cardview.widget.CardView></LinearLayout>來(lái)自適配器的一些代碼:@Override    public View getChildView(int groupPosition, final int childPosition,                             boolean isLastChild, View convertView, ViewGroup parent) {        final String childText = (String) getChild(groupPosition, childPosition);        if (convertView == null) {            LayoutInflater infalInflater = (LayoutInflater) this._context                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);            convertView = infalInflater.inflate(R.layout.list_item, null);        }
查看完整描述

1 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

最簡(jiǎn)單的方法是讓適配器占用更多列表。


因此,像這樣準(zhǔn)備 datalists 和 setAdapter:


private ExpandableListAdapter listAdapter;

private ExpandableListView expListView;

private List<String> listDataHeader;

private HashMap<String, List<String>> listDataChild1, listDataChild2;


@Nullable

@Override

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View cpf = inflater.inflate(R.layout.checklist_bstart, container, false);

    expListView = cpf.findViewById(R.id.lv_bstart);

    prepareListData();

    listAdapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild1, listDataChild2);

    expListView.setAdapter(listAdapter);

    return cpf;

}


private void prepareListData() {

    listDataHeader = new ArrayList<>();

    listDataChild1 = new HashMap<>();

    listDataHeader.add(getResources().getString(R.string.bstart_ver));

    listDataHeader.add(getResources().getString(R.string.bstart_op));

    List<String> Header1 = new ArrayList<>();

    Header1.add(getResources().getString(R.string.bstart_string1));

    Header1.add(getResources().getString(R.string.bstart_string2));

    Header1.add(getResources().getString(R.string.bstart_string3));

    List<String> Header12 = new ArrayList<>();

    Header12.add(getResources().getString(R.string.bstart_string4));

    Header12.add(getResources().getString(R.string.bstart_string5));

    Header12.add(getResources().getString(R.string.bstart_string6));


    List<String> Header2 = new ArrayList<>();

    Header2.add(getResources().getString(R.string.bstart_string4));

    Header2.add(getResources().getString(R.string.bstart_string5));

    Header2.add(getResources().getString(R.string.bstart_string6));

    Header2.add(getResources().getString(R.string.bstart_string7));

    Header2.add(getResources().getString(R.string.bstart_string8));

    List<String> Header22 = new ArrayList<>();

    Header22.add(getResources().getString(R.string.bstart_string1));

    Header22.add(getResources().getString(R.string.bstart_string2));

    Header22.add(getResources().getString(R.string.bstart_string3));

    Header22.add(getResources().getString(R.string.bstart_string7));

    Header22.add(getResources().getString(R.string.bstart_string8));


    listDataChild1.put(listDataHeader.get(0), Header1);

    listDataChild1.put(listDataHeader.get(1), Header2);

    listDataChild2.put(listDataHeader.get(0), Header1);

    listDataChild2.put(listDataHeader.get(1), Header2);

}

并像這樣修改適配器構(gòu)造函數(shù)和 getChildView :


Context _context;

List<String> listDataHeader;

HashMap<String, List<String>> listDataChild1, listDataChild2;


public ExpandableListAdapter(Context context, List<String> listDataHeader, HashMap<String, List<String>> listDataChild1,

                             HashMap<String, List<String>> listDataChild2) {

    _context = context;

    this.listDataHeader = listDataHeader;

    this.listDataChild1 = listDataChild1;

    this.listDataChild2 = listDataChild2;

}


@Override

public View getChildView(int groupPosition, int childPosition, boolean b, View convertView, ViewGroup viewGroup) {

    String childText = (String) getChild(groupPosition, childPosition);

    String childText2 = listDataChild2.get(getGroup(groupPosition)).get(childPosition);


    if (convertView == null) {

        LayoutInflater infalInflater = (LayoutInflater) this._context

                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        convertView = infalInflater.inflate(R.layout.list_item, null);

    }


    TextView txtListChild = (TextView) convertView.findViewById(R.id.lblListItem);

    txtListChild.setText(childText);

    TextView txtListChild2 = (TextView) convertView.findViewById(R.id.lblListItem2);

    txtListChild2.setText(childText2);

    return convertView;

}

您可以執(zhí)行類(lèi)似的操作來(lái)制作第三個(gè)列表。要記住的一件非常重要的事情是,第二個(gè)/第三個(gè)列表的大小決不能小于主列表,否則會(huì)導(dǎo)致 INDEX_OUT_OF_BOUND 錯(cuò)誤 [listDataChild2.get(getGroup(groupPosition)).get(childPosition) 其中 childPosition 的邊界為主列表的大小]。


對(duì)于我在上面評(píng)論中提到的鏈接,使用 POJO 類(lèi)而不是 List 和 HashMap。這可能是一個(gè)更好的方法。


希望有幫助!


查看完整回答
反對(duì) 回復(fù) 2023-09-20
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)