¿Cómo obtener datos de otras actividades en android?
Tengo dos actividades como Activity
A y B y estoy tratando de pasar dos cadenas diferentes de A a B usando Bundle
y startActivity(intent)
.
Como eso:
- Java.lang.SecurityException: Permiso Negación: no se permite enviar broadcast android.intent.action.MEDIA_MOUNTED en KitKat solamente
- Intento vacío (excepción nullpointer) en el flujo maestro / detallado al hacer clic en "arriba" en la barra de acciones
- ¿Cómo abrir un archivo sin conocer su extensión pero sabiendo su nombre completo?
- Mi WearableListenerService no se inicia cuando se reinicia Android
- Cómo decidir de qué actividad venimos?
Intent intent = new Intent(A.this, B.class); Bundle bundle = new Bundle(); bundle.putString("vidoedetails", filedetails); //bundle.putString("videoname", filename); intent.putExtras(bundle); //intent.putExtra("videofilename", filename); //intent.putExtra("vidoefiledetails", filedetails); startActivity(intent);
Y en la clase B estoy usando dos TextView
s para mostrar las cadenas de la clase A por separado.
Como eso:
Intent i = getIntent(); Bundle extras = i.getExtras(); filedetails = extras.getString("videodetails"); filename = extras.getString("videoname");
El problema es que filedetils
se imprimen en la clase B pero no el nombre del archivo.
¿Alguna solución para esto?
- Icono de la aplicación Launcher desaparece de la pantalla
- Manejo de esquemas de URI desconocidos en Android (ejemplo de Bitcoin)
- ¿Por qué mi android enviar método de intento de correo electrónico no es el trabajo
- Android TV no está iniciando LAUNCH_LEANBACK Actividad
- No se puede obtener la imagen de la cámara con el selector de intenciones en 4.2.2 AVD
- Eliminación de la pila de actividad completa de Android en SDK antiguos (que carecen de FLAG_ACTIVITY_CLEAR_TASK)
- Resultado de la intención, ¿cómo saber quién lo envió?
- Manejo de los intentos de descarga en mi aplicación
Usted tiene un error tipográfico:
bundle.putString("vidoedetails", filedetails);
debiera ser
bundle.putString("videodetails", filedetails);
Sé que tengo 9 días de retraso en esta respuesta, pero este es un buen ejemplo de por qué creo una clase de constantes. Con una clase de constantes, no importa si está mal escrita ("video" -> "vidoe") porque será "mal escrita" en ambos lugares, ya que lo está haciendo referencia a través de una ubicación bien conocida.
Constantes.java
public static String WELL_KNOWN_STRING "org.example.stackoverflow.4792829";
Actividad1.java
bundle.putString(Constants.WELL_KNOWN_STRING, filedetails);
Actividad2.java
filedetails = extras.getString(Constants.WELL_KNOWN_STRING);
Sí, escribió erróneamente videodetails:
Suyo: vid * OE * detalles
Correcto: vid * EO * detalles
// First activity actvty_btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent(v.getContext(),SECONDACTIVITY.class); startActivityForResult(i, STATIC_INTEGER_VALUE); } }); /* This function gets the value from the other activity where we have passed a value on calling this activity */ public void activity_value() { Intent i = getIntent(); Bundle extras=i.getExtras(); if(extras !=null) { // This is necessary for the retrv_value rtrv_value = extras.getString("key"); if(!(rtrv_value.isEmpty())) { // It displays if the retrieved value is not equal to zero myselection.setText("Your partner says = " + rtrv_value); } } } // Second activity myBtn.setOnClickListener(new View.OnClickListener () { public void onClick(View v) { Intent intent = new Intent(v.getContext(), FIRSTACTIVITY.class); Bundle bundle = new Bundle(); bundle.putString("key", txt1.getText().toString()); // Here key is just the "Reference Name" and txt1 is the EditText value intent.putExtras(bundle); startActivity(intent); } });
Esta es otra forma de pasar datos entre Actividades. Esto es sólo un ejemplo de un tutorial que estaba siguiendo. Tengo una pantalla de bienvenida que se ejecuta durante 5 segundos y, a continuación, podría matar el clip de sonido de:
@Override protected void onPause() { super.onPause(); ourSong.release(); }
Decidí que quería que el clip de sonido siguiera jugando en la siguiente actividad mientras todavía era capaz de matar / lanzar desde allí, así que hice el clip de sonido, objeto MediaPlayer, público y estático, similar a cómo en System.out es un Objeto público estático. Ser nuevo en Android dev pero no nuevo en Java dev, lo hice de esta manera.
import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; public class Splash extends Activity { public static MediaPlayer ourSong; // <----- Created the object to be shared // this way @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); ourSong = MediaPlayer.create(Splash.this, R.raw.dubstep); ourSong.start(); Thread timer = new Thread() { public void run() { try { sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } finally { Intent openStartingPoint = new Intent( "expectusafterlun.ch.androidtutorial.MENU"); startActivity(openStartingPoint); } } }; timer.start(); } }
Luego, desde la siguiente actividad, o cualquier otra actividad, podría acceder a ese objeto de MediaPlayer.
public class Menu extends ListActivity { String activities[] = { "Count", "TextPlay", "Email", "Camera", "example4", "example5", "example6" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_expandable_list_item_1, activities)); } @Override protected void onPause() { super.onPause(); Splash.ourSong.release(); // <----- Accessing data from another Activity // here } }
- ¿Cómo puede ajustar Android SnackBar a una posición específica en la pantalla
- Inicio de una actividad de Android desde un método estático