Soy un androide principiante, tratando de aprender, y esta es mi primera pregunta, así que por favor, disculpe si la pregunta es demasiado simple y por favor dime si estoy usando el foro incorrectamente.

Tengo un FragmentActivity el uso de un diseño que incluye un viewpager; la actividad se crea una instancia de MyFragmentPagerAdapter, que crea varias instancias de MyFragment. Todos son de apoyo.versiones v4.

Estoy tratando de encontrar una manera de pasar un valor entero (que representa a una selección que el usuario ha hecho anteriormente, que en realidad podría ser un dibujable id) para el fragmento. Estoy usando una intención de pasar
a esta actividad y sé que puede utilizar un paquete para pasar un valor a partir de la FragmentPagerAdapter para el fragmento, pero no puedo encontrar una manera de conseguir a partir de la actividad a la FragmentPagerAdapter. He intentado de varias maneras incluyendo un cambio en el constructor, pero no podía conseguir que funcione.

Que me estoy perdiendo algo simple? ¿Cuál es la mejor manera de hacer esto?

Actividad

    public class SecondActivity extends FragmentActivity {
      private MyIntegerAdapter1 mAdapter1;
      private ViewPager mPager1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
        mAdapter1 = new MyIntegerAdapter1(getSupportFragmentManager());
        mPager1 = (ViewPager) findViewById(R.id.pager1);
        mPager1.setAdapter(mAdapter1);

FragmentPagerAdapter

    public class MyIntegerAdapter1 extends FragmentPagerAdapter {
    public MyIntegerAdapter1(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            Fragment f1 = new IntegerFragment();
            Bundle args1 = new Bundle();
            args1.putInt("param", R.drawable.image1);
            args1.putInt("number", 1);
            f1.setArguments(args1);
            return f1;
    etc

Fragmento

    public class IntegerFragment extends Fragment {
      private int imageResourceId;
      private int numberSelected;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //change to avoid orientation crash
        imageResourceId = getArguments().getInt("param");
        numberSelected = getArguments().getInt("number");

OriginalEl autor David Walton | 2013-02-19

2 Comentarios

  1. 6

    Me extracto de esta a partir de la original de Google Muestras.

    Fragmento:

    public class IntegerFragment extends Fragment {
        int imageResourceId;
        int numberSelected;
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //change to avoid orientation crash
            imageResourceId = getArguments().getInt("param");
            numberSelected = getArguments().getInt("number");
        }
        
        public static Fragment newInstance(int imageResourceId, int numberSelected) {
            IntegerFragment f = new IntegerFragment();
            f.imageResourceId = imageResourceId;
            f.numberSelected = numberSelected;
            return f;
        }

    FragmentPagerAdapter

    public class MyIntegerAdapter1 extends FragmentPagerAdapter {
        private Fragment[] fragments;
    
        public MyIntegerAdapter1(FragmentManager fm) {
            super(fm);
        }
    
        @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0:
            if (content != null && position < content.length) {
            if (fragments[position] == null) {
                fragments[position] = IntegerFragment.newInstance(R.drawable.image1, 1);
            }
            return fragments[position % fragments.length];
        }
        return null;
    etc
    Gracias, pero que parece ser de otra manera para pasar una variable a partir de la FragmentPagerAdapter para el Fragmento, que ya puedo hacer. La parte estoy teniendo problemas con la está pasando de la FragmentActivity a la FragmentPagerAdapter. Después de que me puede pasar es que el Fragmento.
    Lo siento, yo no entiendo correctamente…
    De hecho, esta es la mejor manera de pasar los valores de uso de newInstance

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here