アクティビティ間でデータを渡すことを試みています。
通常のアクティビティの間でデータを渡すためにインテントを使っています
以下のコードを考えてみてください。
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」にデータをインテントとして送るとします。
では、どのようにして「Activity-1」から取得したデータを「AndroidTabRestaurantDescSearchListView」で受信し、それを再び「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")
シンプルですね。
あなたの 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");