質問シーケンスを処理するクラスがあります。アクティビティは拡張されません。クラスのメソッドがあります:親アクティビティが非アクティビティクラスのインテントにパラメータとして渡されたときに、onActivityResultがfinish()によって呼び出されない
public class QuizMaster {
public void startQuiz(Activity activity, Model model) {
//switch - case statement using model
Intent intent = new Intent(activity, QuestionTextActivity.class)
activity.startActivityForResult(intent, requestCode);
//other case statements with other intents
}
}
私は
mQuizMaster.startQuiz(this, mModel);
で作業活動からこのメソッドを呼び出すと、私は(終了したら)子アクティビティ:
Intent returnIntent = new Intent();
returnIntent.putExtra(ARG_SELECTED_CHECKBOX, checkedBox);
setResult(RESULT_CODE, returnIntent);
finish();
それはdoesnの親アクティビティを実行しないでください
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
Log.d(LOG_TAG, "OnActivityResult called in SignDetailsActivity. Resultcode is: ");
}
しかし、私は実際の親アクティビティファイルに
Intent intent = new Intent(activity, QuestionTextActivity.class)
activity.startActivityForResult(intent, requestCode);
を実行すると、それはonActivityResultメソッドを実行しません。
なぜ非アクティビティクラスで送信された場合、子アクティビティは親アクティビティでonActivityResultを実行しませんか?どのように私はこれを修正するのですか?
このような非アクティビティクラスで新しいIntent()を実行した場合、同じ問題を抱える人が見つかりませんでした。誰かがいる場合、私は正しい検索キーワードを使用しなかったし、他の人が同じように入力してこのページに来るかもしれない。
新しいテントが活動を開始していない、あなたのコード内で「startActivity」または「startActivityForResult」のようなものがなければならない..あなたがあなたのコードサンプルを更新してください可能性があり? – Bmuig
申し訳ありませんが、質問にその行のコードを追加するのを忘れました。 – Janneman96
これは7つのケースを持つスイッチで、すべてが異なる子クラスをインテントに入れます。 1つを選択すると、常に4つのinent.putExtraおよびactivity.startActivityForResult(intent、requestCode)が実行されます。 – Janneman96