У меня есть gridview
с 3 ячейками, и каждая ячейка будет иметь ImageView и ImageButton, чтобы добавить изображение из галереи или камеры.При замене одного изображения все остальные ImageViews заменяются в Gridview
Но когда я пытаюсь установить выбранное изображение в ячейке с сеткой gridview, он заменяет все ячейки вместо одной ячейки с одним щелчком.
Вот адаптер для GridView
public class Adapter_For_GridView extends RecyclerView.Adapter<Adapter_For_GridView.ViewHolder>{
public static final String TAG="===GridView Pics===";
ViewClickCallback viewClickCallback;
Context context;
List<UserGrid> userGridList;
UserGrid userGridWrapper;
String ImageData;
public Adapter_For_GridView(ViewClickCallback viewClickCallback,Context context) {
this.viewClickCallback=viewClickCallback;
this.context=context;
}
@Override
public Adapter_For_GridView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.user_profile_photo_single_item,parent,false);
ViewHolder viewHolder=new ViewHolder(view);
Log.d(TAG,"On Create View Holder ");
return viewHolder;
}
@Override
public void onBindViewHolder(Adapter_For_GridView.ViewHolder holder, int position) {
userGridWrapper=userGridList.get(position);
Log.d(TAG,"On Bind View Holder- Value of isUpload "+userGridWrapper.isUpload());
Log.d(TAG,"On Bind View Holder Image Data "+ImageData);
Log.d(TAG,"On Bind View Holder Position "+position+" "+"User Grid Wrapper "+userGridWrapper);
Log.d(TAG,"On Bind View Holder User Grid Wrapper Get Image Path "+userGridWrapper.getImagePath());
if (ImageData!=null){
Log.d(TAG,"Image Data is Not Null "+ImageData);
userGridWrapper.setUpload(true);
if (userGridWrapper.isUpload()){
holder.imageButton.setImageResource(R.drawable.ic_clear_black_24dp);
Picasso.with(context).load(ImageData)
.into(holder.imageView);
}
}
else{
holder.imageButton.setImageResource(R.drawable.ic_add_black_24dp);
}
}
@Override
public int getItemCount() {
Log.d(TAG,"Value at GetItemCount of GridList "+userGridList.size());
if (userGridList!=null){
return userGridList.size();
}
return 2;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageView imageView;
ImageButton imageButton;
public ViewHolder(View itemView) {
super(itemView);
Log.d(TAG,"On View Holder");
itemView.setOnClickListener(this);
imageView= (ImageView) itemView.findViewById(R.id.User_Pics);
imageButton= (ImageButton) itemView.findViewById(R.id.imageButton);
imageButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.d(TAG,"Image Button Clicked "+getAdapterPosition()+" Get Layout Position "+getLayoutPosition());
if (viewClickCallback!=null){
Log.d(TAG,"ViewClickcalleback is not null ");
viewClickCallback.viewClicked(getAdapterPosition()+1);
}
}
}
public void setUserGridList(List<UserGrid> userList){
this.userGridList=userList;
}
public void setImagePath(String path,int position){ //GETTING IMAGE HERE FROM ONACTIVITYRESULT TO THIS ADAPTER
this.ImageData=path;
Log.d(TAG,"Position of Grid "+position); //POSITION OF CLICKED ITEM
Log.d(TAG,"Set Image Path "+path); //IMAGE PATH OF SELECTED IMAGE
notifyDataSetChanged();
}
}
LogCat из onactivityresult
01-31 18:13:47.917 9146-9146/com.example.com.pro_working1 D/===User Profile===: User Profile On Activity Result Calling 25 -1
01-31 18:13:47.927 9146-9146/com.example.com.pro_working1 D/===User Profile===: On Activity Result Calling--Request Code 25
01-31 18:13:47.927 9146-9146/com.example.com.pro_working1 D/===User Profile===: Intent Data Intent { dat=content://media/external/images/media/19276 typ=image/jpeg flg=0x1 }
01-31 18:13:47.927 9146-9146/com.example.com.pro_working1 D/===User Profile===: On Activity Result Position 0
01-31 18:13:48.687 9146-9146/com.example.com.pro_working1 D/===User Profile===: Image Name content://media/external/images/media/19276
01-31 18:13:48.687 9146-9146/com.example.com.pro_working1 D/===User Profile===: Image /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:48.687 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Position of Grid 0
01-31 18:13:48.687 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Set Image Path /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:48.777 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Value at GetItemCount of GridList 3
01-31 18:13:48.777 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Value at GetItemCount of GridList 3
01-31 18:13:48.777 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Value at GetItemCount of GridList 3
01-31 18:13:48.787 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder- Value of isUpload false
01-31 18:13:48.787 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder Image Data /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:48.787 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder Position 0 User Grid Wrapper [email protected]
01-31 18:13:48.787 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder User Grid Wrapper Get Image Path null
01-31 18:13:48.787 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Image Data is Not Null /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Value at GetItemCount of GridList 3
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder- Value of isUpload false
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder Image Data /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder Position 1 User Grid Wrapper [email protected]
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder User Grid Wrapper Get Image Path null
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Image Data is Not Null /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Value at GetItemCount of GridList 3
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder- Value of isUpload false
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder Image Data /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder Position 2 User Grid Wrapper [email protected]
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: On Bind View Holder User Grid Wrapper Get Image Path null
01-31 18:13:49.557 9146-9146/com.example.com.pro_working1 D/===GridView Pics===: Image Data is Not Null /storage/sdcard0/pictures/Social/1/Spread-Unconditional-Love_www.example.com-101.jpg
то что я должен делать. У меня также есть класс-оболочка с установщиками и методами getter 'String imageData и boolean isUpload'. Что я могу сделать, чтобы сделать «ImageData String» доступной только для нажатой ячейки – Ritu
, вы можете либо создать ** ImageData ** varibale в классе оболочки, то же, что isUpload, а затем установить этот varibale для объекта класса-оболочки, получив его из списка, используя позицию в ** setImagePath ** или использовать ** isUpload ** boolean falg to dififerentiate – Sanjeet