DialogActivity
から呼び出されるFragment
があり、2つの画像ボタンでカスタムDialog
を表示します。
_DialogActivity.onCreate
_で
_final Dialog dialog = new Dialog(this, R.style.DialogTheme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_pause);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Android.graphics.Color.TRANSPARENT));
dialog.show();
_
_DialogActivity.onClick
_で
_ @Override
public void onClick(View v) {
Log.d(LOGTAG, "onClick CONTINUE");
Intent resultData = new Intent();
resultData.putExtra("TEST", "return data");
setResult(666, resultData);
dialog.cancel();
}
_
startActivityForResult
を呼び出すフラグメント:
_Intent dialogActivityIntent = new Intent(getActivity(), DialogActivity.class);
startActivityForResult(dialogActivityIntent, 999);
_
Activity
とFragment
を呼び出すstartActivityForResult
では、次のようになります。
_@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
_
ボタンをクリックすると、ダイアログがキャンセルされ、バックグラウンドアクティビティ(フラグメント)が表示されます。
onActivityResult
内のonResume
、Fragment
、...への呼び出しがないか、Activity
にFragment
が含まれています。
両方にonActivityResult
を実装するには、Fragment
とActivity
を実装します。これには私のFragment
が含まれます。
持っているすべてのActivity
に属性_noHistory=true
_を設定します。
onClick
でfinish()
を実行すると、DialogActivity
を呼び出す_Activity/Fragment
_も閉じられ、アプリケーションは前のActivity
に戻ります。
これは問題かもしれません、私はfinish()
を呼び出さないでください...しかし、私がfinish()
を呼び出すと、別のActivity
、Activity
を呼び出すstartActivityForResult
ではありません。
startActivityForResult()はonActivityResult(int requestCode、int resultCode、Intent data)を呼び出さないでください)?
onActivityResult()androidをトリガーできませんか?
startActivityForResultはonActivityResultを呼び出さないようです
Android onActivityResultは呼び出されません
アクティビティがフラグメントから開始されたときにonActivityResult()は呼び出されません
すべてが明確に説明されていることを願っています^^。
前もって感謝します。
属性noHistory=true
を持つアクティビティは、onActivityResult()
を介して新しいActivity
を起動するときに、startActivityForResult()
が呼び出されることはありません。 documentation が言及しているように、noHistory
属性がtrue
に設定されている場合、finish()
はActivity
で呼び出されます。ユーザーがActivity
から移動します。
したがって、startActivityForResult()
が呼び出されると、Activity
は離れてナビゲートされ、そのfinish()
が呼び出され、onActivityResult()
への呼び出しを受信しなくなります。 startActivityForResult()
を呼び出しているActivity
からnoHistory=true
属性を削除した場合は、DialogActivity
のfinish()
でonClick()
を呼び出します。それでも、それを起動したActivity
が表示され、onActivityResult()
への呼び出しを受信するはずです。