【发布时间】:2020-06-02 07:34:48
【问题描述】:
您知道我有一个问题:有没有可能在不完全更改代码的情况下以某种方式更改到 int 的路径?
我正在使用 android studio,目前正在开发应用程序,但我在一件事上苦苦挣扎。
我有一个字符串路径的图像,它需要是 int 才能工作。
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));
在 SliderBN 类中,我有这个:
public class SliderBN {
private int image;
SliderBN(int image){
this.image = image;
}
public int getImage() {
return image;
}
问题是我不想在这里将其更改为字符串,因为那我将不得不更改很多代码。
这是该类的适配器:
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();
}
};
【问题讨论】:
-
Integer.parseInt(myStringValue);
-
对不起我的错。我忘了提一个问题。我是stackoverflow的新手。有没有可能在不完全更改代码的情况下以某种方式将路径更改为 int ?解析其中一个 cmets 中提到的 int 不起作用。我试过了。
-
你的字符串值是多少?
-
您可以更新您的描述添加您的问题。这样会更容易阅读,无需向下滚动即可查看 cmets 中的问题。
-
更改
SliderBN类的构造函数以接收String并在构造函数内部从String中提取图像的编号。上课只是为了保存int没有任何意义。有了这种变化,开设课程会更有意义。
标签: java string android-studio int android-viewpager2