Usar intenciones para pasar datos entre actividades

Estoy tratando de pasar los datos entre Actividades

Uso intenciones para pasar datos entre actividades regulares

considere el siguiente código ::

AndroidTabRestaurantDescSearchListView.java

 public class AndroidTabRestaurantDescSearchListView extends TabActivity { // TabSpec Names private static final String INBOX_SPEC = "Rating"; private static final String OUTBOX_SPEC = "Price"; Button Photos; Button Filter; Button Search; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TabHost tabHost = getTabHost(); // Inbox Tab TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC); Intent inboxIntent = new Intent(this, RatingDescriptionSearchActivity.class); inboxSpec.setIndicator(INBOX_SPEC); // Tab Content inboxSpec.setContent(inboxIntent); // Outbox Tab TabSpec PriceSpec = tabHost.newTabSpec(OUTBOX_SPEC); Intent PriceIntent = new Intent(this, PriceDescriptionSearchActivity.class); PriceSpec .setIndicator(OUTBOX_SPEC); PriceSpec.setContent(PriceIntent); // Adding all TabSpec to TabHost tabHost.addTab(inboxSpec); tabHost.addTab(PriceSpec); //Set the current value tab to default first tab tabHost.setCurrentTab(0); } } 

Supongamos que envío datos de otra actividad llamada Activity-1 a AndroidTabRestaurantDescSearchListView como intenciones

Ahora, ¿cómo puedo recibir los datos en AndroidTabRestaurantDescSearchListView que obtuve de Activity-1 y luego volver a pasarlos a RatingDescriptionSearchActivity

La representación Pictoral es ::

enter image description here

{EDIT} – Si esto es posible según las respuestas — Ambigüedad porque AndroidTabRestaurantDescSearchListView es una actividad de tabulación

 TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC); Intent inboxIntent = new Intent(this, RatingDescriptionActivity.class); intent.putExtra("keyName", value); inboxSpec.setIndicator(INBOX_SPEC); // Tab Content inboxSpec.setContent(inboxIntent); 

Pase los datos de Activity-1 a AndroidTabRes.. como a continuación:

Al enviar actividad …

 Intent intent = new Intent(current.this, AndroidTabRestaurantDescSearchListView.class); intent.putExtra("keyName","value"); startActivity(intent); 

En AndroidTabRes.. actividad …

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

Por lo tanto, puede tener datos en la actividad de recepción desde el envío de actividad …

Y en su clase AndroidTabRestaurantDescSearchListView , haga esto:

 String value= getIntent().getStringExtra("keyName"); Intent intent = new Intent(this, RatingDescriptionSearchActivity.class); intent.putExtra("keyName", value); startActivity(intent); 

Luego, en su clase RatingDescriptionSearchActivity , haga esto:

  String data= getIntent().getStringExtra("keyName"); 

Pruebe esto desde su actividad AndroidTabRestaurantDescSearchListView

 Intent intent = new Intent(this,RatingDescriptionSearchActivity.class ); intent.putExtras( getIntent().getExtras() ); startActivity( intent ); 

Y luego desde la actividad RatingDescriptionSearchActivity simplemente llame

 getIntent().getStringExtra("key") 

Puedes usar Bundle para obtener datos:

 Bundle extras = intent.getExtras(); String data = extras.getString("data"); // use your key 

Y nuevamente puede pasar estos datos a la siguiente actividad:

  Intent intent = new Intent(this, next_Activity.class); intent.putExtra("data", data); startActivity(intent); 

Sencillo.

Suponiendo que en tu Activity-1 , hiciste esto:

 String stringExtra = "Some string you want to pass"; Intent intent = new Intent(this, AndroidTabRestaurantDescSearchListView.class); //include the string in your intent intent.putExtra("string", stringExtra); startActivity(intent); 

Y en su clase AndroidTabRestaurantDescSearchListView, haga esto:

 //fetch the string from the intent String extraFromAct1 = getIntent().getStringExtra("string"); Intent intent = new Intent(this, RatingDescriptionSearchActivity.class); //attach same string and send it with the intent intent.putExtra("string", extraFromAct1); startActivity(intent); 

Luego, en su clase RatingDescriptionSearchActivity, haga esto:

 String extraFromAct1 = getIntent().getStringExtra("string"); 

Actividad principal

 public class MainActivity extends Activity { EditText user, password; Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); user = (EditText) findViewById(R.id.username_edit); password = (EditText) findViewById(R.id.edit_password); login = (Button) findViewById(R.id.btnSubmit); login.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,Second.class); String uservalue = user.getText().toString(); String name_value = password.getText().toString(); String password_value = password.getText().toString(); intent.putExtra("username", uservalue); intent.putExtra("password", password_value); startActivity(intent); } }); } } 

Segunda actividad en la que desea recibir datos

 public class Second extends Activity{ EditText name, pass; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_activity); name = (EditText) findViewById(R.id.editText1); pass = (EditText) findViewById(R.id.editText2); String value = getIntent().getStringExtra("username"); String pass_val = getIntent().getStringExtra("password"); name.setText(value); pass.setText(pass_val); } } 

En FirstActivity:

 Intent sendDataToSecondActivity = new Intent(FirstActivity.this, SecondActivity.class); sendDataToSecondActivity.putExtra("USERNAME",userNameEditText.getText().toString()); sendDataToSecondActivity.putExtra("PASSWORD",passwordEditText.getText().toString()); startActivity(sendDataToSecondActivity); 

En SecondActivity

En onCreate()

 String userName = getIntent().getStringExtra("USERNAME"); String passWord = getIntent().getStringExtra("PASSWORD");