Autore Topic: Dubbio sui fragment  (Letto 715 volte)

Offline fisherman

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung i8150
  • Sistema operativo:
    Windows 7
Dubbio sui fragment
« il: 01 Dicembre 2012, 15:44:15 CET »
0
Ciao a tutti, vado subito al sodo:

Si può fare in modo che, se io ho due pulsanti sulla home, uno si colleghi a un fragment e l'altro ad un'altro fragment?

Spiego la mia situazione, ho:

-Una main activity con due pulsanti (chiamati A e B).
-Una PagerTabsActivity che a sua volta è collegata ai due fragment  (A e B) e a un PagerAdapter. (ho seguito il tutorial: [medio] ViewPager con tabs interattivi - Android Developers Italia)

Come codice ho:

Codice (Java): [Seleziona]
public void A (View v) {
        Context context = getBaseContext();
        Intent myIntent = new Intent(context, PagerTabsActivity.class);
        startActivityForResult(myIntent, 0);
       }

In questo modo quando schiaccio "A" si apre PagerTabsActivity e di conseguenza il fragment A, dato che è il primo; poi, facendo lo swipe verso sinistra si apre il fragment B.

Ecco, il mio problema è che io vorrei che schiacciando "B" si aprisse direttamente il Fragment "B", senza dover passare dalla A.

Grazie in anticipo per la vostra attenzione!




Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Dubbio sui fragment
« Risposta #1 il: 01 Dicembre 2012, 18:49:12 CET »
0
Nell'intent con cui avvii PagerTabsActivity metti una flag che indica la pagina (o meglio il fragment) da selezionare:

Codice (Java): [Seleziona]
public void B(View v) {
        Context context = getBaseContext();
        Intent myIntent = new Intent(context, PagerTabsActivity.class);
        myIntent.putExtra("page", "b");
        startActivityForResult(myIntent, 0);
       }

Nell'onCreate di PagerTabsActivity leggi il valore passato e selezioni la tab b:

Codice (Java): [Seleziona]
Intent i = getIntent();

if(i.hasExtra("page")){
   if(i.getStringExtra("page").equals("b")){
      //selezioni la tab b
   }
}

Offline fisherman

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung i8150
  • Sistema operativo:
    Windows 7
Re:Dubbio sui fragment
« Risposta #2 il: 01 Dicembre 2012, 19:36:36 CET »
0

Codice (Java): [Seleziona]
Intent i = getIntent();

if(i.hasExtra("page")){
   if(i.getStringExtra("page").equals("b")){
      //selezioni la tab b
   }
}

Grazie mille per l'aiuto! Ma non ho ben capito cosa devo mettere al posto di : //selezioni tab b
Io ho provato con:

Codice (Java): [Seleziona]
if(i.hasExtra("page")){
                   if(i.getStringExtra("page").equals("b")){
                       Context context = getBaseContext();
                       Intent myIntent = new Intent(context, B.class);
                       startActivityForResult(myIntent, 0);
                 }

Ma non funziona :(, come posso risolvere?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Dubbio sui fragment
« Risposta #3 il: 01 Dicembre 2012, 23:35:47 CET »
0
Se hai un ViewPager dovresti chiamare il metodo viewPager.setCurrentItem() per selezionare la seconda pagina o quella che ti serve.