我把数据给适配器后 notif适配器不刷新列对应的字体颜色
您的每一个用心回答,都会让这个世界变得更美好一些!
package com.example.ximalaya.adapter; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.ximalaya.R; import com.example.ximalaya.base.BaseApplication; import com.example.ximalaya.persenters.Playpersenter; import com.example.ximalaya.utils.LogUtil; import com.example.ximalaya.views.SobPopWindow; import com.squareup.picasso.Picasso; import com.ximalaya.ting.android.opensdk.model.track.Track; import java.util.ArrayList; import java.util.List; public class Player_list_viewAdapter extends RecyclerView.Adapter<Player_list_viewAdapter.MyHolder> { private List<Track> sTrack = new ArrayList<>(); private View mItemview; private SobPopWindow mSobPopWindow; private Track mTrack; private String TAG = "Player_list_viewAdapter"; private SobPopWindow.ListOnclick mListOnclick; private int mPlayindex; private TextView mPlayer_list_text; private ImageView mPlayer_list_jpg; private int mIndex; /** * 传入数据 * @param tracks * @param position */ public void setdata(List<Track> tracks, int position) { LogUtil.d(TAG,"数据---->list适配器"); sTrack.clear(); sTrack.addAll(tracks); mPlayindex = position; notifyDataSetChanged(); } /** * 数据混乱加一行代码 * @param position * @return */ @Override public int getItemViewType(int position) { return position; } @NonNull @Override public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { mItemview = LayoutInflater.from(parent.getContext()).inflate(R.layout.player_list_item,parent,false); return new MyHolder(mItemview); } @Override public void onBindViewHolder(@NonNull MyHolder holder, int position) { mItemview.setTag(position); mTrack = sTrack.get(position); holder.initview(mTrack,position); mIndex = position; } @Override public int getItemCount() { return sTrack.size(); } //点击接口 public void listOnclick(SobPopWindow.ListOnclick listOnclick) { if (listOnclick != null) { this.mListOnclick = listOnclick; } } public void setcurrentposition(int position) { this.mPlayindex = position; LogUtil.d(TAG,"不刷新list"); notifyDataSetChanged(); } public class MyHolder extends RecyclerView.ViewHolder { public MyHolder(@NonNull View itemView) { super(itemView); } public void initview(Track track, int position1) { mPlayer_list_text = mItemview.findViewById(R.id.player_list_text); mPlayer_list_jpg = mItemview.findViewById(R.id.player_list_jpg); if (mPlayer_list_text != null && mPlayer_list_jpg != null) { mPlayer_list_text.setText(position1 +" 《"+track.getTrackTitle()+"》"); //Picasso.with(BaseApplication.getBaseAppContext()).load(track.getCoverUrlLarge()).into(mPlayer_list_jpg); mPlayer_list_text.setTextColor(BaseApplication.getBaseAppContext().getResources().getColor( position1 == mPlayindex ? R.color.main_color : R.color.black_color)); mPlayer_list_jpg.setVisibility(position1 == mPlayindex ? View.VISIBLE:View.GONE); } mItemview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int index = (int) v.getTag(); mListOnclick.ListOnclick(index); LogUtil.d(TAG,"数据---->点击"+index); } }); } } }
notif适配器不刷新列对应的字体颜色
那你知道流程吗?首先是你调用setCurrentPosition,名字命名不规范,你的。
然后,复制给mPlayIndex,接着是notifyDataSetChange-->更新,那当然是适配器里的更新代码啦。
如果没有更新,那就看看你适配器里的代码吧。
onBindViewHolder
要么你就把你适配器的代码帖上来。
notif适配器不刷新列对应的字体颜色
那你知道流程吗?首先是你调用setCurrentPosition,名字命名不规范,你的。
然后,复制给mPlayIndex,接着是notifyDataSetChange-->更新,那当然是适配器里的更新代码啦。
如果没有更新,那就看看你适配器里的代码吧。
onBindViewHolder
要么你就把你适配器的代码帖上来。