¿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:
- La intención de la cámara devuelve una imagen pequeña
- ¿Cómo recibir datos de la intención de envío?
- ¿Cómo puedo enviar datos utilizando el acabado?
- Definir categoría de intentos mediante programación
- Receptor de radiodifusión en fragmento no recibe intención de servicio
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?
- ¿Cómo recibe una llamada saliente en un receptor de difusión
- ¿Cómo puedo pasar URI con intención explícita?
- Descripción de Intent.FLAG_ACTIVITY_CLEAR_TOP
- Iniciar siempre una nueva instancia de actividad sin historial
- selector personalizado de Android
- Android: cómo cambiar el diseño en el botón de clic?
- Compartir la imagen con la URL
- Cómo iniciar una nueva actividad en android
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