Paso de valor de una actividad a otra en android
Hola, he desarrollado una aplicación que tiene un cuadro de texto y un botón de búsqueda cuando introdujo un número en el cuadro de texto y haga clic en el botón de búsqueda que necesita para pasar el valor ingresado a la siguiente actividad donde utiliza ese valor para obtener el valor Desde una base de datos.
Estoy usando el código siguiente para pasar el valor.
- Establecer indicadores de intención para PreferenceScreen en xml
- ¿Cómo encontrar la lista de aplicaciones a las que accede el usuario en un intervalo usando un trabajo de fondo?
- Cómo iniciar la actividad Administrar cuentas / Configuración de sincronización en Android?
- Android: Consigue tiempo gastado por actividad
- ¿Cómo pasar datos entre actividades usando variables estáticas en una clase pública?
search_button.setClickable(true); search_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String outlet_no = outlet_id.getText().toString(); System.out.println(outlet_no); if(!outlet_no.isEmpty()){ @SuppressWarnings("deprecation") SharedPreferences myPrefs = getApplicationContext().getSharedPreferences("myPrefs", MODE_WORLD_READABLE); SharedPreferences.Editor prefsEditor = myPrefs.edit(); prefsEditor.putString("outlet_id", outlet_no); prefsEditor.commit(); Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class); startActivity(myIntent); HomeActivity.this.startActivity(myIntent); } else{ Toast.makeText(getApplicationContext(), "Please enter an outlet id", Toast.LENGTH_SHORT); } } });
Mi problema es que no pasa el valor. ¿Puede alguien que me ayude con esto y también any1 puede explicarme el código anterior como yo didnot escribirlo y estoy encontrando difícil de entender.
Lado StoreActivity
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.store); myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); mOutletID = myPrefs.getString("outlet_id", "0"); mOutletDetails = myPrefs.getString("outlet_details","{}"); Log.v("outlet_details",myPrefs.getString("outlet_details","{}")); if(mOutletDetails != "{}"){ setOutletData(mOutletDetails); } else{ executeAjaxRequest(); } }
- Muestra de ventana incorrecta, no se puede mostrar un diálogo antes de que se cree una actividad o después de que esté oculta
- Enlace de Android entre dos actividades en el mismo paquete
- Cómo hacer que una ventana de actividad permanezca siempre en la parte superior
- ¿Cómo saber cuándo una actividad finaliza un pase de diseño?
- Cantidad máxima de actividades en la aplicación? Androide
- ¿Cuál es la diferencia entre la llamada de actividad explícita e implícita en android?
- Comunicación entre Actividad y Servicio
- Eliminación de una actividad de la pila de historial
Errores que cometió:
1) ¿Por qué está intentando comenzar la actividad dos veces?
startActivity(myIntent); // this is OK HomeActivity.this.startActivity(myIntent);
2) Para pasar el texto introducido de una actividad a otra, puede utilizar el método putExtra()
de intención, por ejemplo:
myIntent.putExtra("SearchText", outlet_no);
Así que su código completo sería:
Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class); myIntent.putExtra("SearchText", outlet_no); startActivity(myIntent);
3) Para recibir el valor que usted ha pasado de la primera actividad:
Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String outlet_no= bundle.getString("SearchText");
4) SharedPreferences:
FYI, SharedPreference
se utiliza para guardar una pequeña cantidad de datos que pueden ser referencia y utilizados posteriormente en la aplicación.
Usted debe referirse a los enlaces siguientes:
- Preferencias compartidas
- Intención
- Filtros de intención e intención
Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class); myIntent.putExtra("searchString", outlet_no); startActivity(myIntent);
Esto enviará la searchString
a StoreActivity
Y en StoreActivity
puede recuperar el valor utilizando:
String s = getIntent.getStringExtra("searchString");
En su método onClick, tenga el código siguiente:
String outlet_no = outlet_id.getText().toString(); if(!outlet_no.isEmpty()){ Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class); myIntent.putExtra("outlet_id",outlet_no); startActivity(myIntent); } else{ Toast.makeText(getApplicationContext(), "Please enter an outlet id", Toast.LENGTH_SHORT); }
Ahora en StoreActivity, en el método onCreate () tiene algo como esto:
String outlet_no = getIntent().getStringExtra("outlet_id"); if (outlet_no != null) //Just a defensive check //Start your processing
También puede hacer esto con Intents.
Digamos que tenemos 2 actividades: SourceActivity y DestinationActivity y queremos pasar un valor de SourceActivity a DestinationActivity
En su botón OnClickListener:
String str_outlet_no = outlet_no.getText().toString(); Intent intent = new Intent(SourceActivity.this, DestinationActivity.class); intent.putExtra("outlet_no_key", outlet_no); startActivity(intent);
Y en el otro lado en DestinationActivity:
Intent intent = getIntent(); String desi = intent.getStringExtra("outlet_no");
Y búsqueda desi de la base de datos
Puedes probar algo como esto: –
Actividad A
myIntent.putExtra(var, value); // Putting the value startActivity(myIntent);
Actividad B
String value = getIntent().getStringExtra(var); // Getting the value
La forma más sencilla de hacerlo sería pasar el identificador de sesión a la actividad de cierre de sesión en la intención que está utilizando para iniciar la actividad:
Intent intent = new Intent(getBaseContext(), SignoutActivity.class); intent.putExtra("EXTRA_SESSION_ID", sessionId); startActivity(intent)
Los documentos para Intents tienen más información (consulte la sección titulada "Extras").
Simplemente puede escribirlo como
Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class); myIntent.putExtra("outlet_no",outlet_no); startActivity(myIntent);
Avísame si esto funcionó o no.
Actividad A
myIntent.putExtra(var, value); // Putting the value startActivity(myIntent);
Actividad B
String value = getIntent().getStringExtra(var); // Getting the value
- Error al intentar ejecutar una aplicación Cordova en un dispositivo Android
- El divisor de Android ExpandableListView es invisible