¿Cómo obtengo datos adicionales del bash en Android?

¿Cómo puedo enviar datos de una actividad (intención) a otra?

Yo uso este código para enviar datos:

Intent i=new Intent(context,SendMessage.class); i.putExtra("id", user.getUserAccountId()+""); i.putExtra("name", user.getUserFullName()); context.startActivity(i); 

Primero, obtenga la intención que inició su actividad utilizando el método getIntent() :

 Intent intent = getIntent(); 

Si sus datos adicionales se representan como cadenas, puede usar el intent.getStringExtra(String name) . En tu caso:

 String id = intent.getStringExtra("id"); String name = intent.getStringExtra("name"); 

En la actividad de recepción

 Bundle extras = getIntent().getExtras(); String userName; if (extras != null) { userName = extras.getString("name"); // and get whatever type user account id is } 
 // How to send value using intent from one class to another class // class A(which will send data) Intent theIntent = new Intent(this, B.class); theIntent.putExtra("name", john); startActivity(theIntent); // How to get these values in another class // Class B Intent i= getIntent(); i.getStringExtra("name"); // if you log here i than you will get the value of i ie john 

Agregar

Establecer datos

 String value = "Hello World!"; Intent intent = new Intent(getApplicationContext(), NewActivity.class); intent.putExtra("sample_name", value); startActivity(intent); 

Obtener datos

 String value; Bundle bundle = getIntent().getExtras(); if (bundle != null) { value = bundle.getString("sample_name"); } 

En lugar de inicializar otra intención nueva para recibir los datos, solo haga esto:

 String id = getIntent().getStringExtra("id"); 

Si se usa en FragmentActivity, intente esto:

La primera página extiende FragmentActivity

 Intent Tabdetail = new Intent(getApplicationContext(), ReceivePage.class); Tabdetail.putExtra("Marker", marker.getTitle().toString()); startActivity(Tabdetail); 

En el fragmento, solo necesita llamar a getActivity() primero,

La segunda página extiende Fragmento :

 String receive = getActivity().getIntent().getExtras().getString("name"); 

Si está tratando de obtener datos adicionales en fragmentos, puede intentar usar:

Coloque los datos usando:

 Bundle args = new Bundle(); args.putInt(DummySectionFragment.ARG_SECTION_NUMBER); 

Obtener datos usando:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getArguments().getInt(ARG_SECTION_NUMBER); getArguments().getString(ARG_SECTION_STRING); getArguments().getBoolean(ARG_SECTION_BOOL); getArguments().getChar(ARG_SECTION_CHAR); getArguments().getByte(ARG_SECTION_DATA); } 

Sólo una sugerencia:

En lugar de usar “id” o “name” en su i.putExtra (“id” …..), sugeriría, cuando tenga sentido, el uso de los campos estándares actuales que se pueden usar con putExtra (), es decir, Intent.EXTRA_algo

Se puede encontrar una lista completa en Intent (Desarrolladores de Android).

Podemos hacerlo por medios simples:

En FirstActivity:

 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("uid", uid.toString()); intent.putExtra("pwd", pwd.toString()); startActivity(intent); 

En SecondActivity:

  try { Intent intent = getIntent(); String uid = intent.getStringExtra("uid"); String pwd = intent.getStringExtra("pwd"); } catch (Exception e) { e.printStackTrace(); Log.e("getStringExtra_EX", e + ""); } 

También puedes hacer esto
// poner valor en la intención

  Intent in = new Intent(MainActivity.this, Booked.class); in.putExtra("filter", "Booked"); startActivity(in); 

// obtener valor de la intención

  Intent intent = getIntent(); Bundle bundle = intent.getExtras(); String filter = bundle.getString("filter"); 

Obtener diferentes tipos de extra de la intención

Para acceder a los datos de Intent, debes saber dos cosas.

  • LLAVE
  • DataType de tus datos.

Existen diferentes métodos en la clase de Intención para extraer diferentes tipos de datos. Se parece a esto

getIntent (). XXXX (KEY) o intent.XXX (KEY);

Entonces, si conoce el tipo de datos de su varibale que configura en otherActivity puede usar el método respectivo.

Ejemplo para recuperar cadena en su actividad de la intención

 String profileName = getIntent().getStringExtra("SomeKey"); 

Lista de diferentes variantes de métodos para diferentes tipos de datos

Puede ver la lista de métodos disponibles en la Documentación Oficial de Intención .

Esto es para adaptador, para actividad solo necesitas cambiar mContext a tu nombre de Activty y para fragmento necesitas cambiar mContext a getActivity ()

  public static ArrayList tags_array ;// static array list if you want to pass array data public void sendDataBundle(){ tags_array = new ArrayList(); tags_array.add("hashtag");//few array data tags_array.add("selling"); tags_array.add("cityname"); tags_array.add("more"); tags_array.add("mobile"); tags_array.add("android"); tags_array.add("dress"); Intent su = new Intent(mContext, ViewItemActivity.class); Bundle bun1 = new Bundle(); bun1.putString("product_title","My Product Titile"); bun1.putString("product_description", "My Product Discription"); bun1.putString("category", "Product Category"); bun1.putStringArrayList("hashtag", tags_array);//to pass array list su.putExtras(bun1); mContext.startActivity(su); } 

Puede obtener cualquier tipo de datan adicional de la intención , sin importar si es un objeto o picadura o cualquier tipo de datos.

 Bundle extra = getIntent().getExtras(); if (extra != null){ String str1 = (String) extra.get("obj"); // get a object String str2 = extra.getString("string"); //get a string } 

Pase el bash con valor en la Primera actividad:

 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("uid", uid.toString()); intent.putExtra("pwd", pwd.toString()); startActivity(intent); 

Recibir bash de segunda actividad;

 Inetent intent=getIntent(); String User=intent.getStringExtra("uid"); String Pass=intent.getStringExtra("pwd"); 

Generalmente utilizamos dos métodos para enviar el valor y obtener el valor. Para enviar el valor, usaremos intent.putExtra("Key",Value); y durante el bash de recepción de otra actividad utilizaremos intent.getStringExtra("Key"); , Aquí la clave puede ser cualquier palabra clave para identificar el valor significa que el valor que está compartiendo. Espero que funcione para ti.

Acabo de publicar una respuesta aquí que cubre este tema con más detalle, incluidas algunas alternativas.

Utiliza Vapor API , un nuevo marco de Android inspirado en jQuery que escribí para simplificar el desarrollo de Android. Vea el ejemplo en esa respuesta sobre cómo puede pasar datos fácilmente entre actividades.

También demuestra VaporIntent , que le permite encadenar llamadas de método y utilizar el método .put(...) sobrecargado:

 $.Intent().put("data", "myData").put("more", 568)... 

Puede pasar fácilmente datos en toda la aplicación utilizando la API Vapor , por lo que esperamos que sea útil para usted y para los demás durante el desarrollo de la aplicación.