Change imageview resource from inside recyclerview when clicked

Viewed 28

I trying make looking position item for warehouse apps. Here my UI

Note : L1 means Lemari 1, E means row E, and 1 means column 1.

My target now is when user click list of a item, that item will be highlighted and rack which have same data will change colour. Example if i click list a item which stored in rack L1E1, row list L1E1 will be highlighted and rack in L1E1 will change colour. I can change colour rack and background row recyclerview but i can't sync it. Here my code

MyMain.Java

public class AdminTrackingActivity extends AppCompatActivity {

ImageView btnBack, btnKanan, btnKiri,L1A1, L1A2, L1B1, L1B2, L1C1, L1C2, L1D1, L1D2, L1E1, L1E2;
RecyclerView mRecyclerViewtr;
private EditText searchEnginetr;

private FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
DatabaseReference mDatabaseAddStock = mDatabase.getReference().child("Stock").child("In").child("StockIn");
DatabaseReference mBuyMore = mDatabase.getReference().child("BuyMore");

/*inisiasi adapter*/
private AdminListAdapterTracking adapter;
private ArrayList<AdminStockIn> list;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_admin_tracking);
    btnBack = findViewById(R.id.btn_back_AdminTracking);
    btnBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(AdminTrackingActivity.this, MainMenuAdminActivity.class));
        }
    });

    btnKanan = findViewById(R.id.btn_kanan_AdminTracking);
    btnKanan.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(AdminTrackingActivity.this, AdminTrackingActivity2.class));
        }
    });

    btnKiri=findViewById(R.id.btn_kiri_AdminTracking);
    btnKiri.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(AdminTrackingActivity.this, AdminTrackingActivity5.class));
        }
    });

    L1A1 = findViewById(R.id.AdminTracking_L1A1);
    L1A2 = findViewById(R.id.AdminTracking_L1A2);
    L1B1 = findViewById(R.id.AdminTracking_L1B1);
    L1B2 = findViewById(R.id.AdminTracking_L1B2);
    L1C1 = findViewById(R.id.AdminTracking_L1C1);
    L1C2 = findViewById(R.id.AdminTracking_L1C2);
    L1D1 = findViewById(R.id.AdminTracking_L1D1);
    L1D2 = findViewById(R.id.AdminTracking_L1D2);
    L1E1 = findViewById(R.id.AdminTracking_L1E1);
    L1E2 = findViewById(R.id.AdminTracking_L1E2);

    L1A1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1A2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1B1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1B2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1C1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1C2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1D1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1D2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1E1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    L1E2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_abu_edit));
            L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
            L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
        }
    });

    DatabaseReference mDatabaseAddRack = mDatabase.getReference().child("Stock").child("In").child("StockIn");
    mDatabaseAddRack.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                String rack = snapshot.child("rack").getValue(String.class);
                if (rack != null && rack.equals("L1A1")) {
                    L1A1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1A2")){
                    L1A2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1B1")){
                    L1B1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1B2")){
                    L1B2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1C1")){
                    L1C1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1C2")){
                    L1C2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1D1")){
                    L1D1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1D2")){
                    L1D2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                }else if(rack != null && rack.equals("L1E1")){
                    L1E1.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                } else if(rack != null && rack.equals("L1E2")){
                    L1E2.setImageDrawable(getResources().getDrawable(R.drawable.kotak_merah_edit));
                }
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
    /*recycler view*/
    mRecyclerViewtr = (RecyclerView) findViewById(R.id.RV_AdminTracking);
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    layoutManager.setReverseLayout(true);
    layoutManager.setStackFromEnd(true);
    mRecyclerViewtr.setLayoutManager(layoutManager);
    mRecyclerViewtr.setHasFixedSize(true);

    list = new ArrayList<>();
    adapter = new AdminListAdapterTracking(list, this);
    mRecyclerViewtr.setAdapter(adapter);

    /*fitur search*/
    searchEnginetr = (EditText) findViewById(R.id.searchEngine_AdminTracking);
    searchEnginetr.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if (!s.toString().isEmpty()) {
                search(s.toString());
            } else {
                search("");
            }
        }
    });

    readData();
}

/*membaca data stock in*/
private void readData() {
    mDatabaseAddStock.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (snapshot.hasChildren()) {
                list.clear();
                for (DataSnapshot dss : snapshot.getChildren()) {
                    final AdminStockIn adminStockIn = dss.getValue(AdminStockIn.class);
                    list.add(adminStockIn);
                }
                AdminListAdapterTracking adminListAdapterTracking = new AdminListAdapterTracking(list, getApplicationContext());
                mRecyclerViewtr.setAdapter(adminListAdapterTracking);
                adminListAdapterTracking.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
}

/*lanjutan fitur search*/
private void search(String s) {
    Query querydate = mDatabaseAddStock.orderByChild("date").startAt(s).endAt(s + "\uf8ff");
    Query queryname = mDatabaseAddStock.orderByChild("name").startAt(s).endAt(s + "\uf8ff");
    Query queryvendor = mDatabaseAddStock.orderByChild("vendor").startAt(s).endAt(s + "\uf8ff");
    Query queryrack = mDatabaseAddStock.orderByChild("rack").startAt(s).endAt(s + "\uf8ff");

    querydate.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (snapshot.hasChildren()) {
                list.clear();
                for (DataSnapshot dss : snapshot.getChildren()) {
                    final AdminStockIn adminStockIn = dss.getValue(AdminStockIn.class);
                    list.add(adminStockIn);
                }
                AdminListAdapterTracking adminListAdapterTracking = new AdminListAdapterTracking(list, getApplicationContext());
                mRecyclerViewtr.setAdapter(adminListAdapterTracking);
                adminListAdapterTracking.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

    queryname.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (snapshot.hasChildren()) {
                list.clear();
                for (DataSnapshot dss : snapshot.getChildren()) {
                    final AdminStockIn adminStockIn = dss.getValue(AdminStockIn.class);
                    list.add(adminStockIn);
                }
                AdminListAdapterTracking adminListAdapterTracking = new AdminListAdapterTracking(list, getApplicationContext());
                mRecyclerViewtr.setAdapter(adminListAdapterTracking);
                adminListAdapterTracking.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

    queryvendor.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (snapshot.hasChildren()) {
                list.clear();
                for (DataSnapshot dss : snapshot.getChildren()) {
                    final AdminStockIn adminStockIn = dss.getValue(AdminStockIn.class);
                    list.add(adminStockIn);
                }
                AdminListAdapterTracking adminListAdapterTracking = new AdminListAdapterTracking(list, getApplicationContext());
                mRecyclerViewtr.setAdapter(adminListAdapterTracking);
                adminListAdapterTracking.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

    queryrack.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            if (snapshot.hasChildren()) {
                list.clear();
                for (DataSnapshot dss : snapshot.getChildren()) {
                    final AdminStockIn adminStockIn = dss.getValue(AdminStockIn.class);
                    list.add(adminStockIn);
                }
                AdminListAdapterTracking adminListAdapterTracking = new AdminListAdapterTracking(list, getApplicationContext());
                mRecyclerViewtr.setAdapter(adminListAdapterTracking);
                adminListAdapterTracking.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
}




/*tombol kembali*/
@Override
public void onBackPressed() {
    super.onBackPressed();
    moveTaskToBack();
}
private void moveTaskToBack() {
    startActivity(new Intent(AdminTrackingActivity.this, MainMenuAdminActivity.class));
}
}

MyAdapter.Java

public class AdminListAdapterTracking extends RecyclerView.Adapter<AdminListAdapterTracking.MyViewHolder> {
ArrayList<AdminStockIn> mList;
Context context;
Integer row_index = -1;

public AdminListAdapterTracking(ArrayList<AdminStockIn> mList, Context context) {
    this.mList = mList;
    this.context = context;
}


@NonNull
@Override
public AdminListAdapterTracking.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(context).inflate(R.layout.admin_list_tracking, parent, false);
    return new AdminListAdapterTracking.MyViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull AdminListAdapterTracking.MyViewHolder holder, final int position) {

    final AdminStockIn adminStockIn = mList.get(position);

    holder.date.setText(adminStockIn.getDate());
    holder.time.setText(adminStockIn.getTime());
    holder.name.setText(adminStockIn.getName());
    holder.quantity.setText(adminStockIn.getQuantity().toString());
    holder.vendor.setText(adminStockIn.getVendor());
    holder.rack.setText(adminStockIn.getRack());

    holder.layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            row_index=position;
            notifyDataSetChanged();
        }
    });
    if (row_index==position){
        holder.layout.setBackgroundColor(Color.parseColor("#1064AE"));
    }else {
        holder.layout.setBackgroundColor(Color.parseColor("#ffffff"));
    }

}

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

public static class MyViewHolder extends RecyclerView.ViewHolder{

    TextView date;
    TextView time;
    TextView name;
    TextView quantity;
    TextView vendor;
    TextView rack;

    RelativeLayout layout;


    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        date = itemView.findViewById(R.id.itemDate_AdminTracking);
        time = itemView.findViewById(R.id.itemTime_AdminTracking);
        name = itemView.findViewById(R.id.itemName_AdminTracking);
        quantity = itemView.findViewById(R.id.itemQuantity_AdminTracking);
        vendor = itemView.findViewById(R.id.itemVendor_AdminTracking);
        rack = itemView.findViewById(R.id.itemRack_AdminTracking);
        layout = itemView.findViewById(R.id.layoutAdminTracking);
    }
}
}

How to sync my recycler view and my rack?

0 Answers
Related