2012-09-05 12 views
5

Come accedere al valore della variabile in un'altra attività. Nel mio esempio ho una variabile di stringa che valore è il valore selezionato di spinner. Come posso accedere a questa variabile in un'altra attività senza usare Intent?Come ottengo una variabile in un'altra attività?

public class LoginScreen extends Activity { 

     Spinner sp; 
String item; 


     Spinner sp = (Spinner) findViewById(R.id.lgnspinner); 

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.network_array, 
      android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    sp.setAdapter(adapter); 

    sp.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      item = (String) parent.getItemAtPosition(position); 



     public class AgAppMenu extends Activity { 
+0

possibile duplicato di [Android: come dichiarare variabili globali?] (Http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables). Il ciclo di vita di Activity' non è sotto il tuo controllo e non devi cercare di controllarlo. Vedi la domanda collegata. –

risposta

4

Se non si desidera utilizzare una variabile globale, è sempre possibile creare un metodo nell'attività per restituire la stringa.

public String getMyString(){ 
    return item; 
} 

Poi nella vostra attività in corso si potrebbe chiamare:

String myValue = LoginScreen.getMyString(); 
+0

getMyString() deve essere dichiarato statico altrimenti non potrà mai accedervi. –

14

poterle dichiarare come variabili statiche e poi nella vostra altra classe è possibile accedere loro come Activity1.stringName.

public static String stringName; 

stringName = .. // value from Spinner 

Poi, in tutte le altre attività, è possibile accedervi come YourMainActivty.stringName.

+0

come accedere alla 2a attività? non è possibile ottenere un'altra attività io uso in 2a attività LoginScreen.stringname è mostrare l'errore –

+0

Non dovrebbe. Potete allegare il codice che state utilizzando? Mi aiuterebbe a identificare il tuo errore. – Swayam

+0

Questo metodo funziona. Grazie. –

1

Prova questo.

Passaggio 1: Creare un oggetto Bundle statico nella classe Application (ApplicationClass.java)

 public static Bundle mMyAppsBundle = new Bundle(): 

Fase 2:.

valori chiave Serie coppia in quel fagotto da qualsiasi luogo. come questo:

ApplicationClass.mMyAppsBundle.putString("key","value"); 

Fase 3:

Ora è possibile ottenere questi valori da qualsiasi luogo come questo senso:

String str = ApplicationClass.mMyAppsBundle.getString("key"); 

Applicare controllo nullo prima di utilizzare gli oggetti di bundle per i punti di sicurezza di vista.

Problemi correlati