我在onCreateViewHolder 設定事件監聽器,
在我點擊開關的時候能收到log,但是再次點擊的時候就收不到了,然后我點擊其它位子的按鈕能收到log,每一次點擊不同的按鈕就能夠收到log但是點擊相同的按鈕就無法收到log這是什么原因?
但是在onBindViewHolder 設定事件監聽器就不會出現這種問題。
public DFViewholder(@NonNull View itemView,int type,int position) {
super(itemView,type,position);
deviceName = itemView.findViewById(R.id.device_name);
swit = itemView.findViewById(R.id.swit);
linear = itemView.findViewById(R.id.device_linear);
swit.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.d(TAG,"position="+position);
}
});
}
uj5u.com熱心網友回復:
你可以看下,onCreateViewHolder和onBindViewHolder的執行次數是不一樣的。當每個adapter里面的itemview改變位置,隱藏重新顯示都會影響上面元素已經賦予的值。重點可以研究下這個問題對以后很有幫助。我們經常出現重繪后所有的值成了一個,或者點擊按鈕觸發的同一個點擊事件。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/253674.html
標籤:Android
