Passing different images every second Fragment

前端 未结 1 1346
情深已故
情深已故 2020-12-22 07:40

Trying to pass dynamically different image every second Fragment and I have trouble to set it properly in onCreateView method and if s

相关标签:
1条回答
  • 2020-12-22 08:22

    If you want to pass data Fragment from Activity, try to use static static factory method as the following codes.

    Fragment1

    public static Fragment newInstance(String str, int imageView , String[] rb, boolean arg) {
        Fragment fragment = new Fragment1();
        Bundle args = new Bundle();
        args.putString("str", str);
        args.putInt("image_resid", imageView);
        args.putStringArray("rb", rb);
        args.putBoolean("arg", arg);
        fragment.setArguments(args);
        return fragment;
    }
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        Bundle args = getArguments();
        stringValue = args.getString("str");
        imagesResId = args.getInt("image_resid");
        rbData = args.getStringArray("rb");
        mapImage = args.getBoolean("arg");
    }
    

    MainActivity

    fragmentList = new ArrayList<>();
    fragmentList.add(Fragment1.newInstance(getResources().getString(R.string.text_page_1), R.drawable.swans, new String[]{getResources().getString(R.string.answer1), getResources().getString(R.string.answer2),getResources().getString(R.string.answer3)},false));
    fragmentList.add(Fragment1.newInstance(null, R.drawable.image_file, null, true));    // TALKING ABOUT THIS LINE HERE AND LATER EVERY SECOND FRAGMENT. JUST IMAGE WILL CHANGE.
    fragmentList.add(Fragment1.newInstance(getResources().getString(R.string.text_page_2), R.drawable.nature, new String[]{getResources().getString(R.string.answer4), getResources().getString(R.string.answer5),getResources().getString(R.string.answer6)},false));
    
    0 讨论(0)
提交回复
热议问题