You see I have a problem: Is there any possibility to somehow change that path to int without changing the code entirely?
Im using android studio and currently developing app but Im strugling with one thing.
I have a String path of image which needs to be int for it to work.
String path1 = Environment.getDataDirectory().getAbsolutePath() + "/data/sk.lotario.bg/app_imgBuns/0.png";
String path2 = Environment.getDataDirectory().getAbsolutePath() + "/data/sk.lotario.bg/app_imgBuns/1.png";
List<SliderBN> sliderBNS = new ArrayList<>();
for(int i = 0; i < Recipe.bnPos; i++){
sliderBNS.add(new SliderBN(path1));
sliderBNS.add(new SliderBN(path2));
In class SliderBN I have this:
public class SliderBN {
private int image;
SliderBN(int image){
this.image = image;
}
public int getImage() {
return image;
}
Problem is I dont want to change it here to String cause then I would have to change a lot of code.
Here is adapter to that class:
private List<SliderBN> sliderBNS;
private ViewPager2 vpBN;
private static final String TAG = "SliderBNAdapter";
public static int vpBNPosition = 0;
public SliderBNAdapter(List<SliderBN> sliderBNS, ViewPager2 vpBN) {
this.sliderBNS = sliderBNS;
this.vpBN = vpBN;
}
public SliderBNAdapter() {
}
@NonNull
@Override
public SliderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new SliderViewHolder(
LayoutInflater.from(parent.getContext()).inflate(
R.layout.slider_item_container,
parent,
false
)
);
}
@Override
public void onBindViewHolder(@NonNull SliderViewHolder holder, int position) {
holder.setImage(sliderBNS.get(position));
if (position == sliderBNS.size()) {
vpBN.post(runnable);
}
}
@Override
public int getItemCount() {
vpBNPosition = vpBN.getCurrentItem();
Log.i(TAG,"position "+vpBNPosition);
return sliderBNS.size();
}
class SliderViewHolder extends RecyclerView.ViewHolder {
private ImageView imageView;
SliderViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageSlide);
}
void setImage(SliderBN sliderBN){
imageView.setImageResource(sliderBun.getImage());
}
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
sliderBNS.addAll(sliderBNS);
notifyDataSetChanged();
}
};