助けてください: 現在のアクティビティを終了する前に、前のアクティビティに追加のデータを追加したいのですが。
例: アクティビティ A はアクティビティ B を開始します。アクティビティ BI が終了したら、アクティビティ A に新しいデータが必要です。
どうすればそれができますか?前にたくさんのありがとう
助けてください: 現在のアクティビティを終了する前に、前のアクティビティに追加のデータを追加したいのですが。
例: アクティビティ A はアクティビティ B を開始します。アクティビティ BI が終了したら、アクティビティ A に新しいデータが必要です。
どうすればそれができますか?前にたくさんのありがとう
を使用startActivityforResult
してアクティビティ B を開き、次にアクティビティ A でオーバーライドonActivityResult(int, int, Intent)
します。
例:
public class MyActivity extends Activity {
...
static final int PICK_CONTACT_REQUEST = 0;
protected boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
// When the user center presses, let them pick a contact.
startActivityForResult(
new Intent(Intent.ACTION_PICK,
new Uri("content://contacts")),
PICK_CONTACT_REQUEST);
return true;
}
return false;
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == RESULT_OK) {
// A contact was picked. Here we will just display it
// to the user.
startActivity(new Intent(Intent.ACTION_VIEW, data));
}
}
}
}
http://developer.android.com/reference/android/app/Activity.htmlを確認してください
startActivityforResult を使用してアクティビティ B を開始します。オーバーライド onActivityResult(int, int, Intent) メソッドをアクティビティ A に実装し、setResult をアクティビティ B に実装します。
例:
public class ActivityA extends Activity {
static final int REQUEST_CODE = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.xyz);
DateBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivityForResult(new Intent(ActivityA.this,ActivityB.class), REQUEST_CODE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// A contact was picked. Here we will just display it
// to the user.
startActivity(new Intent(Intent.ACTION_VIEW, data));
}
}
}
}
public class ActivityB extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.xyz);
BackBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("DATA", "your string");
setResult(RESULT_OK, intent);
finish();
}
});
}
}