Я пытаюсь передать данные между действиями
Я использую намерения для передачи данных между обычными действиями
рассмотрим код ниже::
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);
}
}
Предположим, я отправляю данные из некоторой другой активности под названием Activity-1
в AndroidTabRestaurantDescSearchListView
как намерения
Теперь как я могу получить данные в AndroidTabRestaurantDescSearchListView
, которые я получил из Activity-1
, а затем снова передать их в RatingDescriptionSearchActivity
?
Пиктографическое представление ::
{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);
Передайте данные из 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");
Попробуйте сделать это из активности AndroidTabRestaurantDescSearchListView
.
Intent intent = new Intent(this,RatingDescriptionSearchActivity.class );
intent.putExtras( getIntent().getExtras() );
startActivity( intent );
А затем из активности RatingDescriptionSearchActivity
просто вызовите
getIntent().getStringExtra("key")
Просто.
Предположим, что в своем Действии-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");