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

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

Android中如何將ArrayList的所有元素顯示為Chips

Android中如何將ArrayList的所有元素顯示為Chips

元芳怎么了 2023-09-20 16:29:14
我有一個(gè)ArrayList<String>這樣的[Angularjs, JavaScript, Css]在我的適配器中,我ArrayList從另一個(gè)意圖獲取標(biāo)簽。我嘗試使用以下方法顯示ArrayListas Chips的所有元素,但我只得到 ArrayList 的最后一個(gè)元素。我只看到一個(gè)帶有 ArrayList 最后一個(gè)元素的 Chip。for (String tag: card.getTags()) {   Log.d(TAG, "tag - " + tag);   holder.tags.setText(tag); }誰(shuí)能指導(dǎo)一下,我如何更改代碼以將 ArrayList 的所有元素顯示為Chips.
查看完整描述

2 回答

?
HUH函數(shù)

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

如果你說(shuō)的是芯片。

在 xml 布局中添加ChipGroup您想要顯示籌碼的位置

<com.google.android.material.chip.ChipGroup

?android:id="@+id/chipGroup"

?android:layout_width="match_parent"

?app:chipSpacingVertical="2dp"

?android:layout_height="wrap_content"/>

現(xiàn)在您可以使用此方法添加 ArrayList,如下Chip所示ChipGroup:


private void addChip(String pItem, ChipGroup pChipGroup) {

? ? Chip lChip = new Chip(this);

? ? lChip.setText(pItem);

? ? lChip.setTextColor(getResources().getColor(R.color.primary_text));

? ? lChip.setChipBackgroundColor(getResources().getColorStateList(R.color.chip_bg));


? ? pChipGroup.addView(lChip, pChipGroup.getChildCount() - 1);

? }


查看完整回答
反對(duì) 回復(fù) 2023-09-20
?
互換的青春

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

目前,您正在更換支架的環(huán)路tags。forEach你只有一個(gè)持有者并不斷更新直到循環(huán)結(jié)束;這就是你最后的原因chip/tag

如果你指的是MaterialComponents的ChipGroup。

ChipGroup chipGroup = new ChipGroup(parentView.getContext());


String[] genres = {"Thriller", "Comedy", "Adventure"};

for(String genre : genres) {

? ?Chip chip = new Chip(parentView.getContext());

? ?chip.setText(genre);

? ?chipGroup.addView(chip);

}

我認(rèn)為您一定正在使用,RecyclerView因?yàn)槲以谀拇a片段中看到了持有者。

以下是視圖層次結(jié)構(gòu);我假設(shè)你正在努力實(shí)現(xiàn);如果沒(méi)有,那么您可以使用相同的邏輯來(lái)移動(dòng)這些部分

  • 回收視圖

    • 標(biāo)簽 - 多個(gè)標(biāo)簽使用FlowLayout- 在視圖中添加多個(gè)標(biāo)簽

    • 每個(gè)項(xiàng)目/視圖

您需要bindRecyclerView 中的每個(gè)項(xiàng)目。

@Override

public void onBindViewHolder(final YourViewHolder holder, final int position) {

? ? ...

? ? // assuming you have FlowLayout in recyclerview view item

? ? // do add holder pattern to flowlayout as well

? ? fillAutoSpacingLayout(card.getTags(), holder.flowLayout);

}

在這里,我使用FlowLayout在 RecyclerView 的每個(gè)視圖中添加芯片或標(biāo)簽。


在 onBindViewHolder 中綁定每個(gè)項(xiàng)目/視圖:


private void fillAutoSpacingLayout(ArrayList<String> tags, FlowLayout flowLayout) {


? ? for (String tag : tags) {

? ? ? ? TextView textView = buildLabel(tag);

? ? ? ? flowLayout.addView(textView);

? ? }

}


private TextView buildLabel(String text) {

? ? TextView textView = new TextView(this);

? ? textView.setText(text);

? ? textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);

? ? textView.setPadding((int)dpToPx(16), (int)dpToPx(8), (int)dpToPx(16), (int)dpToPx(8));

? ? textView.setBackgroundResource(R.drawable.label_bg);


? ? return textView;

}


private float dpToPx(float dp){

? ? return TypedValue.applyDimension(

? ? ? ? ? ? TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());

}


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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