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

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

如何獲取數(shù)據(jù)并更改所選適配器項(xiàng)的背景顏色?

如何獲取數(shù)據(jù)并更改所選適配器項(xiàng)的背景顏色?

慕姐4208626 2022-10-07 17:03:47
我正在嘗試更改項(xiàng)目bgcolor的recyclerview值以及獲取該位置的值。我能夠獲取這些值并更改它們bgcolor,但我無法正確執(zhí)行它們。我面臨以下問題:1.第一個(gè)位置項(xiàng)目的背景總是改變:當(dāng)我點(diǎn)擊它時(shí)我想改變它。2.如果我能夠bgcolor相應(yīng)地更改,則不會(huì)獲取值。這是我的代碼:recyclerview 的適配器類public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyAd> {private static Clickitem clickitem;private ArrayList<String> names = new ArrayList<>();private Context context;private int row ;String defaulter;List<Item> items;boolean isSeleceted = false;private int selectedPosition = -1;private String onlygps, onlysid, onlygpsnew, onlygpsnewer;private SparseBooleanArray selectedItems = new SparseBooleanArray();@NonNull@Overridepublic MyAd onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {    View view = LayoutInflater.from(context).inflate(R.layout.list_recycler, viewGroup, false);    return new MyAd(view);}MyAdapter(ArrayList<String> names, Context context) {    this.names = names;    this.context = context;    clickitem = (Clickitem) context;}public static Clickitem getClickitem() {    return clickitem;}public static void setClickitem(Clickitem clickitem) {    MyAdapter.clickitem = clickitem;}@Overridepublic void onBindViewHolder(@NonNull final MyAd myAd, final int i) {    String full = names.get(i);    onlygps = full.substring(0, full.indexOf("/"));    onlysid = full.substring(full.lastIndexOf("/") + 1);    myAd.GPSname.setText(onlygps);    myAd.logs.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            String full = names.get(i);            onlygpsnew = full.substring(0, full.indexOf("/"));            Intent intent = new Intent(context, LogsHistory.class);            intent.putExtra("GPS", onlygpsnew);            context.startActivity(intent);        }    });    if (row == i) {        myAd.layout.setBackgroundColor(Color.YELLOW);    }  else {        myAd.layout.setBackgroundColor(Color.WHITE);    }}
查看完整描述

1 回答

?
白板的微信

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

整數(shù)默認(rèn)值為 0,因此當(dāng)列表顯示時(shí),您的行值將更改第一行的背景顏色。


您可以使用


private int row = -1 ;

代替


private int row ;

您還需要在用戶單擊行時(shí)更改行值。


myAd.layout.setOnClickListener(new View.OnClickListener() {

                                   @Override

                                   public void onClick(View v) {

                                   ...

                                   row = myAd.adapterPosition();

                                   notifyDataSetChanged();

另一種使用選擇器的方法是這樣的。我可以更具可讀性和簡單性。


<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@color/blue" android:state_pressed="true"/>

<item android:drawable="@color/AliceBlue" android:state_focused="true"/>  

<item android:drawable="@color/Azure"/>

</selector>


查看完整回答
反對 回復(fù) 2022-10-07
  • 1 回答
  • 0 關(guān)注
  • 152 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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