Visualizzazione stampabile
-
Tutto chiaro grazie.
Ho solo un problema, che ora ho creato l'intent nella prima activity e nella seconda prendo i dati solo che non sapendo come attivarlo ho messo l'intent e il putextra dentro al public void onCreate(Bundle savedInstanceState) iniziale ma così non va bene perché ogni volta che ci accedo da un'altra parte mi visualizza il valore di default di quando non riceve i dati invece io voglio creare un metodo apposta che quando utilizzo quell'intent della prima activity viene richiamato, un po' come avevi fatto vedere sopra
-
Tutto chiaro grazie.
Ho solo un problema, che ora ho creato l'intent nella prima activity e nella seconda prendo i dati solo che non sapendo come attivarlo ho messo l'intent e il putextra dentro al public void onCreate(Bundle savedInstanceState) iniziale ma così non va bene perché ogni volta che ci accedo da un'altra parte mi visualizza il valore di default di quando non riceve i dati invece io voglio creare un metodo apposta che quando utilizzo quell'intent della prima activity viene richiamato, un po' come avevi fatto vedere sopra
-
Basta che con putExtra metti un flag per capire quale Activity ha lanciato Activity2.
-
Riusciresti a farmi un piccolo esempio su cosa devo aggiungere?
questo è il mio codice
Activity 1:
Button dati = (Button) findViewById(R.id.dati);
dati.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String pkg=getPackageName();
Intent inviadati = new Intent(getApplicationContext(), BluetoothComunication.class);
inviadati.putExtra(pkg+".myInt", i);
startActivity(inviadati);
}
});
Activity 2:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
Intent ricevidati=getIntent(); // l'intent di questa activity
String pkg=getPackageName();
int i=ricevidati.getIntExtra(pkg+".myInt", -1);//prendiamo i dati
TextView tv=(TextView)findViewById(R.id.result);
tv.append("myInt:"+i+"\n"); //visualizziamo i dati
}
-
Quote:
Originariamente inviato da
Crastino3
Riusciresti a farmi un piccolo esempio su cosa devo aggiungere?
questo è il mio codice
Activity 1:
Button dati = (Button) findViewById(R.id.dati);
dati.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String pkg=getPackageName();
Intent inviadati = new Intent(getApplicationContext(), BluetoothComunication.class);
inviadati.putExtra(pkg+".myInt", i);
startActivity(inviadati);
}
});
Activity 2:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
Intent ricevidati=getIntent(); // l'intent di questa activity
String pkg=getPackageName();
int i=ricevidati.getIntExtra(pkg+".myInt", -1);//prendiamo i dati
TextView tv=(TextView)findViewById(R.id.result);
tv.append("myInt:"+i+"\n"); //visualizziamo i dati
}
Se Activity1 è l'unica Activity che lancia Activity2 mettendo nell'Intent come chiave pkg.myInt, allora se Activity2 è lanciata da un'Activity diversa da Activity1 quando fai getInt (cos'è getIntExtra?) ecc. nel metodo on Create non troverà la chiave e restituirà il valore di default -1.
Quindi basta che fai if(i!=-1) {...}
-
Hai perfettamente ragione, dato che ho appena iniziato con Android pensavo ci fosse proprio una maniera per farlo e chiedevo!
getIntExtra invece è il metodo che ho trovato per recuperare gli int, ho visto che esiste un metodo personale per ogni tipo di dato primario