Cómo usar putExtra() y getExtra() para datos de cadena

Resuelto Shaista Naaz asked hace 54 años • 18 respuestas

¿Alguien puede decirme cómo utilizar exactamente getExtra()y putExtra()cuáles son las intenciones? En realidad tengo una variable de cadena, digamos str, que almacena algunos datos de cadena. Ahora quiero enviar estos datos de una actividad a otra.

  Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
  String keyIdentifer  = null;
  i.putExtra(strName, keyIdentifer );

y luego en SecondScreen.java

 public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.table);
        TextView userName = (TextView)findViewById(R.id.userName);
        Bundle bundle = getIntent().getExtras();

        if(bundle.getString("strName")!= null)
        {
            //TODO here get the string stored in the string variable and do 
            // setText() on userName 
        }

    }

Sé que es una pregunta muy básica pero lamentablemente estoy atrapado aquí. Por favor ayuda.

Gracias,

Editar: Aquí la cadena que intento pasar de una pantalla a otra es dinámica. Es decir, tengo un texto de edición donde obtengo la cadena que escriba el usuario. Luego con la ayuda de myEditText.getText().toString(). Obtengo el valor ingresado como una cadena y luego tengo que pasar estos datos.

Shaista Naaz avatar Jan 01 '70 08:01 Shaista Naaz
Aceptado

Utilice esto para "poner" el archivo...

Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
String strName = null;
i.putExtra("STRING_I_NEED", strName);

Luego, para recuperar el valor, intente algo como:

String newString;
if (savedInstanceState == null) {
    Bundle extras = getIntent().getExtras();
    if(extras == null) {
        newString= null;
    } else {
        newString= extras.getString("STRING_I_NEED");
    }
} else {
    newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}
Will Tate avatar Mar 10 '2011 21:03 Will Tate

primera pantalla.java

text=(TextView)findViewById(R.id.tv1);
edit=(EditText)findViewById(R.id.edit);
button=(Button)findViewById(R.id.bt1);

button.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        String s=edit.getText().toString();

        Intent ii=new Intent(MainActivity.this, newclass.class);
        ii.putExtra("name", s);
        startActivity(ii);
    }
});

Segunda pantalla.java

public class newclass extends Activity
{
    private TextView Textv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.intent);
        Textv = (TextView)findViewById(R.id.tv2);
        Intent iin= getIntent();
        Bundle b = iin.getExtras();

        if(b!=null)
        {
            String j =(String) b.get("name");
            Textv.setText(j);
        }
    }
}
ReemaRazdan avatar Mar 21 '2013 11:03 ReemaRazdan

El mejor método...

Actividad de envío

Intent intent = new Intent(SendingActivity.this, RecievingActivity.class);
intent.putExtra("keyName", value);  // pass your values and retrieve them in the other Activity using keyName
startActivity(intent);

Actividad de recepción

 Bundle extras = intent.getExtras();
    if(extras != null)
    String data = extras.getString("keyName"); // retrieve the data using keyName 

/// forma más corta de recibir datos.

String data = getIntent().getExtras().getString("keyName","defaultKey");

//Esto requiere API 12. //El segundo parámetro es opcional. Si keyName es nulo, utilice defaultkeycomo datos.

Zar E Ahmer avatar Apr 14 '2014 11:04 Zar E Ahmer

Esto es lo que he estado usando, espero que ayude a alguien... simple y afectivo.

enviar datos

    intent = new Intent(getActivity(), CheckinActivity.class);
    intent.putExtra("mealID", meal.Meald);
    startActivity(intent);

obtener datos

    int mealId;

    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();

    if(bundle != null){
        mealId = bundle.getInt("mealID");
    }

¡salud!

Sindri Þór avatar Aug 13 '2014 16:08 Sindri Þór