Android 尝试访问新片段数据时调用旧片段
我有四个片段Android 尝试访问新片段数据时调用旧片段,android,android-fragments,Android,Android Fragments,我有四个片段片段零,片段一,片段二,片段三。 除了数据之外,所有片段都有相同的代码。当我试图调用当前片段位置时,它正在调用前一个片段以及前一个数据。但是风景还行 例如: 从碎片零开始,一切都在运转 从片段一开始,它调用FragmentZero及其数据 直到我到达最后一个碎片。但是,在到达最后一个片段之后,一切都正常执行 以下是我的Java代码: public class FragmentZero extends Fragment { private int position = 0
片段零
,片段一
,片段二
,片段三
。
除了数据之外,所有片段都有相同的代码。当我试图调用当前片段位置时,它正在调用前一个片段以及前一个数据。但是风景还行
例如:
- 从碎片零开始,一切都在运转
- 从片段一开始,它调用FragmentZero及其数据
public class FragmentZero extends Fragment {
private int position = 0;
private ImageView art;
private static final String TAG = FragmentZero.class.getSimpleName();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_drawing, container, false);
art = root.findViewById(R.id.alphabet_image);
art.setTag(position);
art.setImageResource(DrawingActivity.imageList.get(position));
final TextView textView = root.findViewById(R.id.section_label);
textView.setText(getString(R.string.section_title, position + 1));
ImageView draw_icon0 = root.findViewById(R.id.draw_icon);
draw_icon0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), ActivityDraw.class).putExtra("image_res", DrawingActivity.imageList.get((Integer) art.getTag())));
Log.d(TAG, (Integer) art.getTag()+" from TAG");
}
});
return root;
}
}
以及onCreate代码:
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
ViewPager viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(sectionsPagerAdapter);
适配器代码:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new FragmentZero();
case 1:
return new FragmentOne();
case 2:
return new FragmentTwo();
case 3:
return new FragmentThree();
}
return null;
}
@Override
public int getCount() {
return imageList.size();
}
}
我正在尝试将
当前片段值
传递给下一个活动。当您尝试将当前片段值传递给下一个活动时,可以从活动设置当前位置
声明一个变量
public static int currentPos = 0;
然后将当前值设置为
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
currentPos = position;
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
现在从片段调用当前位置
&使用当前位置
从片段访问数据
希望你能得到正确的价值
startActivity(new Intent(getContext(), ActivityDraw.class).putExtra("image_res", DrawingActivity.imageList.get(currentPos)));