2012-09-05 36 views
5

¿Cómo accedo a la variable en otra actividad? En mi ejemplo, tengo un elemento de variable de cadena cuyo valor es el valor seleccionado de giro. ¿Cómo puedo acceder a esta variable en otra actividad sin usar Intento?¿Cómo obtengo una variable en otra actividad?

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

posible duplicado de [Android: ¿Cómo declarar las variables globales?] (Http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables). El ciclo de vida de 'Activity' no está bajo su control y no debe tratar de controlarlo. Ver la pregunta vinculada. –

Respuesta

4

Si no desea utilizar una variable global, siempre puede crear un método en su actividad para devolver la cadena.

public String getMyString(){ 
    return item; 
} 

Luego, en su actividad actual se podría llamar:

String myValue = LoginScreen.getMyString(); 
+0

getMyString() debe declararse estático, de lo contrario nunca podrá acceder a él. –

14

se puede declarar como variables estáticas y luego en la otra clase que pueda acceder a ellas como Activity1.stringName.

public static String stringName; 

stringName = .. // value from Spinner 

Luego, en todas las demás actividades, se puede acceder a ellos como YourMainActivty.stringName.

+0

cómo acceder en la 2da actividad? no es obtener otra actividad que utilizo en segunda actividad LoginScreen.stringname es show error –

+0

No debería. ¿Puedes adjuntar el código que estás usando? Me ayudaría a identificar tu error. – Swayam

+0

Este método funciona. Gracias. –

1

Pruebe esto.

Paso 1: Crear un objeto Bundle estática en la clase de aplicación (ApplicationClass.java)

 public static Bundle mMyAppsBundle = new Bundle(): 

. Paso 2:

establecer los valores de pares de claves en ese paquete desde cualquier lugar. así:

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

Paso 3:

Ahora puede obtener estos valores desde cualquier lugar al igual que de esta manera:

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

Aplicar cheque nulo antes de usar objetos de lote para los puntos de vista de seguridad.

Cuestiones relacionadas