Использование намерений для передачи данных между действиями
Я пытаюсь передать данные между действиями
Я использую намерения передавать данные между регулярными действиями
рассмотрим код ниже:
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);
}
}
Предположим, что я посылаю данные из операции Someother с именем Activity-1
в AndroidTabRestaurantDescSearchListView
как намерения
Теперь, как я могу получить данные в AndroidTabRestaurantDescSearchListView
, которые я получил от Activity-1
, а затем снова передать его в RatingDescriptionSearchActivity
Изобразительное представление:
![enter image description here]()
{EDIT}. Если это возможно на основе ответов --- Неоднозначность, поскольку AndroidTabRestaurantDescSearchListView - это вкладка
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);
Ответы
Ответ 1
Передайте данные от Activity-1
до AndroidTabRes..
, как показано ниже:
При отправке активности...
Intent intent = new Intent(current.this, AndroidTabRestaurantDescSearchListView.class);
intent.putExtra("keyName","value");
startActivity(intent);
В AndroidTabRes..
активность...
String data = getIntent().getExtras().getString("keyName");
Таким образом, вы можете иметь данные при получении активности от отправки активности...
И в вашем классе AndroidTabRestaurantDescSearchListView
сделайте следующее:
String value= getIntent().getStringExtra("keyName");
Intent intent = new Intent(this, RatingDescriptionSearchActivity.class);
intent.putExtra("keyName", value);
startActivity(intent);
Затем в вашем классе RatingDescriptionSearchActivity
сделайте следующее:
String data= getIntent().getStringExtra("keyName");
Ответ 2
Попробуйте это из своей деятельности AndroidTabRestaurantDescSearchListView
Intent intent = new Intent(this,RatingDescriptionSearchActivity.class );
intent.putExtras( getIntent().getExtras() );
startActivity( intent );
А затем из RatingDescriptionSearchActivity
активность просто вызовите
getIntent().getStringExtra("key")
Ответ 3
Вы можете использовать Bundle для получения данных:
Bundle extras = intent.getExtras();
String data = extras.getString("data"); // use your key
И снова вы можете перенести эти данные на следующую активность:
Intent intent = new Intent(this, next_Activity.class);
intent.putExtra("data", data);
startActivity(intent);
Ответ 4
Simple.
Предполагая, что в вашем Activity-1
вы сделали это:
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);
И в вашем классе AndroidTabRestaurantDescSearchListView сделайте следующее:
//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);
Затем в вашем классе RatingDescriptionSearchActivity сделайте следующее:
String extraFromAct1 = getIntent().getStringExtra("string");
Ответ 5
Основная деятельность
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);
}
});
}
}
Вторая активность, в которой вы хотите получать данные
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);
}
}
Ответ 6
В FirstActivity:
Intent sendDataToSecondActivity = new Intent(FirstActivity.this, SecondActivity.class);
sendDataToSecondActivity.putExtra("USERNAME",userNameEditText.getText().toString());
sendDataToSecondActivity.putExtra("PASSWORD",passwordEditText.getText().toString());
startActivity(sendDataToSecondActivity);
В SecondActivity
В onCreate()
String userName = getIntent().getStringExtra("USERNAME");
String passWord = getIntent().getStringExtra("PASSWORD");