Comunicación entre Activity y Fragment

752 views
Skip to first unread message

Ailil

unread,
Nov 21, 2014, 2:07:56 AM11/21/14
to desarrollad...@googlegroups.com
Hola a todos!! tengo un probrema que lleva días mareandome
Tengo un ActionBarTabs en el cual quiero pasar dos parametros a un fragment, para saber si los recibe correctamente, los muestro en un textview, 
pero simplemente no logro hacer que funcione este es mi código

public class Tabs extends ActionBarActivity implements ActionBar.TabListener, OnPageChangeListener {

private int idOrigen = 13;
private int idDestino = 20;
private ViewPager mViewPager;
PagerAdapter adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabs);
Bundle bundle= getIntent().getExtras();
                     if (bundle != null){
        idOrigen = bundle.getInt("origen");
        idDestino = bundle.getInt("destino");
                 }
       ....
}
        .
.
.
        .
      public class PagerAdapter extends FragmentPagerAdapter {

Bundle arguments = new Bundle(); 
public PagerAdapter(FragmentManager fm) {
super(fm);
}

public Fragment getItem(int arg0) {
switch (arg0) {
           case 0:
            arguments.putInt("origen", idOrigen);
                arguments.putInt("destino", idDestino);
               return new TiempoHV().newInstance(arguments);
           case 1:
               return new Distancia();
           case 2:
               return new Recorrido();
           default:
            return null;
}
}

public int getCount() {
return 3;
}

}
}

//************** Y de mi fragment

public class TiempoHV extends Fragment{
int idOrigen;
int idDestino;
public static TiempoHV newInstance(Bundle arguments){
TiempoHV fragment= new TiempoHV();
if(arguments != null){
fragment.setArguments(arguments);
}
return fragment;
}

public TiempoHV(){
}
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
idOrigen = getArguments().getInt("origen");
        idDestino = getArguments().getInt("destino");
}
    
@Override
   public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
       View view = inflater.inflate(R.layout.tiempohv, container, false);
        TextView tv = (TextView)view.findViewById(R.id.textView2);
       tv.setText(idOrigen);
        TextView tv1 = (TextView)view.findViewById(R.id.textView3);
       tv1.setText(idDestino);
       return view;
       
   }
 
}


 Creo que es una tontería, pero no he podido resolverlo :´(. Ojalá me puedan ayudar, gracias desde ya
Saludos!!

Ing. Fausto Iocchi

unread,
Nov 21, 2014, 7:25:01 AM11/21/14
to desarrollad...@googlegroups.com
¿Has probado en colocar la toma de los argumentos en el evento onCreateView, en vez de en el onCreate?
--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/8h8ez2
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/f66d218d-99a6-4bbd-8dbd-9084983c395c%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Ailil

unread,
Nov 21, 2014, 10:39:47 PM11/21/14
to desarrollad...@googlegroups.com
Si ya probé poner el getArguments en el onCreateView y tampoco funciona, he visto varios ejemplos y de verdad no encuentro mi error

Ailil

unread,
Nov 22, 2014, 1:42:33 AM11/22/14
to desarrollad...@googlegroups.com
OH! como dije al principio de verdad que era una tontería.
El problema es a la hora de escribir el valor  int en en TextView,
 logré resolverlo al concatenar en el setText(""+int) o agregar un String.valueOf(int);

por si a alguien le sirve

Saludos =) 

Omar Pons

unread,
Nov 25, 2014, 7:04:21 AM11/25/14
to desarrollad...@googlegroups.com
Gracias por la info ;-)

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/8h8ez2
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Reply all
Reply to author
Forward
0 new messages