how i highlighted item in first launch of app in recycle

家住魔仙堡 提交于 2019-12-20 05:47:18

问题


I have integrated item is highlighted in the first launch of the app in my project. I'll use to save the selected item on the click of the adapter in the SQL database and set the value in the first launch of the app, but it does not change the background and text color. please help me in solving the issue and suggest me the right way

public class LoadVehicleTypeAdapter  extends RecyclerView.Adapter<LoadVehicleTypeAdapter.CarTypesHolder> {

private List<TaxiTypeResponse.Message> CarTypesModelsList;
private Context mContext;
VehicleTypeView vehicleTypeView;
int I=-1;
int idd=0;
Activity activity;
GoogleMap map;
int II=-1;
List<VehicleClick> list;
public static String dbname="HellooClick";
public static MyAppRoomDataBase myAppRoomDataBase;


public class CarTypesHolder extends RecyclerView.ViewHolder implements  View.OnClickListener {
    public CustomTextView mCarType;
    public CircleImageView mCarTypeImage;
    LinearLayout llRoot;
    CardView cardView;
    setOnitemclick listener;
    SparseBooleanArray mSparseArray;
    public void setOnItemClickListner(setOnitemclick listener)
    {
        this.listener=listener;
    }

    public CarTypesHolder(View view) {
        super(view);

        mCarType = (CustomTextView) view.findViewById(R.id.frag_cartypes_inflated_name);
        mCarTypeImage = (CircleImageView) view.findViewById(R.id.frag_cartype_inflated_frameImage);
        llRoot = (LinearLayout)view.findViewById(R.id.root1);
        cardView=(CardView) view.findViewById(R.id.cardf);
        mSparseArray=new SparseBooleanArray();


        view.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {

        mSparseArray.put(getAdapterPosition(), true);
        listener.ImageClick(v,getAdapterPosition());
    }
}


public LoadVehicleTypeAdapter(Context context, List<TaxiTypeResponse.Message> CarTypesModelsList, VehicleTypeView vehicleTypeView,Activity activity,GoogleMap map) {
    this.CarTypesModelsList = CarTypesModelsList;
    mContext = context;
    this.vehicleTypeView = vehicleTypeView;
    this.activity=activity;
    this.map=map;
}



@Override
public CarTypesHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.frag_cartype_inflated_view, parent, false);
    return new CarTypesHolder(itemView);
}

@SuppressLint("ResourceType")
@Override
public void onBindViewHolder(final  CarTypesHolder holder, final int position) {
    myAppRoomDataBase=Room.databaseBuilder(activity,MyAppRoomDataBase.class,dbname).allowMainThreadQueries().build();
    list=myAppRoomDataBase.userDao().getAll();
    if(list.size()!=0){
        II= Integer.parseInt(list.get(0).RideId);

    }
    if (II==position)
    {
 holder.llRoot.setBackgroundColor(Color.parseColor("#999999"));
        holder.mCarType.setTextColor(Color.parseColor("#ffffff"));
    }
    else
    {

    }
    SharedPreferences sharedPreferences = activity.getSharedPreferences("mSelected", Context.MODE_PRIVATE);
    TaxiTypeResponse.Message carTypesModel = CarTypesModelsList.get(position);
     holder.mCarType.setText(carTypesModel.getName());
     holder.mCarTypeImage.setBackgroundResource(R.drawable.wait);
    int color = Color.parseColor(PreferenceHandler.readString(mContext,PreferenceHandler.SECONDRY_COLOR,"#006fb6"));
    holder.mCarType.setTextColor(color);



    holder.setOnItemClickListner(new setOnitemclick() {
        @Override
        public void ImageClick(View v,int position1) {
            I=position1;
            notifyDataSetChanged();

            if (list.size()!=0)
            {
                myAppRoomDataBase.userDao().delete();
                list.clear();
            }
            VehicleClick vehicleClick=new VehicleClick();
            vehicleClick.setRideId(String.valueOf(position1));
            myAppRoomDataBase.userDao().insert(vehicleClick);
            list.add(vehicleClick);

        }
    });
    if (I==position)
    {

        holder.llRoot.setBackgroundColor(Color.parseColor("#999999"));
        holder.mCarType.setTextColor(Color.parseColor("#ffffff"));


    }
    else
    {

        holder.llRoot.setBackgroundColor(Color.parseColor("#f3f3f3"));
        holder.mCarType.setTextColor(Color.parseColor("#2196F3"));

    }

   Picasso.with(mContext).load(carTypesModel.getImagePath()).into(holder.mCarTypeImage);

}

@Override
public long getItemId(int position) {
    return CarTypesModelsList.get(position).getID();
}

@Override
public int getItemCount() {
    return CarTypesModelsList.size();
}

public void setSelection(LinearLayout imageView,CustomTextView textView,boolean value,int position){
    if(value){

        imageView.setBackgroundColor(Color.parseColor("#999999"));
        textView.setTextColor(Color.parseColor("#FFFFFF"));

    }else{
        System.out.println("11111111111111111000000111111111111");
        imageView.setBackgroundColor(Color.parseColor("#f3f3f3"));
        textView.setTextColor(Color.parseColor("#2196F3"));

     }
 }
 public interface  setOnitemclick{
    void ImageClick(View view,int position);
 }
@Override
public int getItemViewType(int position) {
    return position;
}



}

来源:https://stackoverflow.com/questions/53737022/on-first-load-of-recyclerview-how-to-set-selected-item-which-i-store-in-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!