utilizar studio programacion móviles example desarrollo curso como aplicaciones android android-intent

studio - ¿Cómo obtener datos de otra actividad en Android?



onactivityresult android (5)

Sí, has escrito mal videodetails:
Atentamente: vid * OE * detalles
Correcto: vid * EO * detalles

Tengo dos actividades, como la Activity A y B, y estoy tratando de pasar dos cadenas diferentes de A a B usando Bundle y startActivity(intent) .

Como eso:

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 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 imprime en la clase B pero no en el nombre del archivo.

¿Alguna solución para esto?


tienes 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 estará "mal escrita" en ambos lugares cuando la referencia en una ubicación bien conocida.

Constants.java

public static String WELL_KNOWN_STRING "org.example..4792829";

Activity1.java

bundle.putString(Constants.WELL_KNOWN_STRING, filedetails);

Activity2.java

filedetails = extras.getString(Constants.WELL_KNOWN_STRING);


// 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); } });


Aquí hay otra forma de pasar datos entre Actividades. Esto es solo un ejemplo de un tutorial que estaba siguiendo. Tengo una pantalla de presentación que se ejecuta durante 5 segundos y luego mataría el clip de sonido de:

@Override protected void onPause() { super.onPause(); ourSong.release(); }

Decidí que quería que el clip de sonido siguiera reproduciéndose en la siguiente actividad mientras seguía siendo capaz de matarlo / soltarlo desde allí, así que hice el clip de sonido, el objeto MediaPlayer, público y estático, similar a cómo en System.out es un objeto público estático Como soy nuevo en el desarrollo de Android pero no soy nuevo en el desarrollo de Java, 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, pude acceder a ese objeto 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 } }