いつもお世話になっております。
早速本題に入らせて頂きます。
本日ご相談させていただきたいのは以下コードとなります。
ActivityOne (Fragment呼び出し部分)
java
1MainFragment fr = new MainFragment(); 2Bundle bundle = new Bundle(); 3bundle.putString("flg", test); 4fr.setArguments(bundle); 5fr.show(getFragmentManager(), "one");
ActivityTwo (Fragment呼び出し部分)
java
1MainFragment fr = new MainFragment(); 2fr.show(getFragmentManager(), "two");
MainFragment
Java
1String flg = getArguments().getString("flg"); 2if (flg == null || flg.length() == 0) { 3 // フラグがない場合は ActivityOne を呼び出し 4 ActivityOne activityOne = (ActivityOne) getActivity(); 5 activityOne .setTextView(str); 6} else { 7 // フラグがある場合は ActivityTwo を呼び出し 8 ActivityTwo activityTwo = (ActivityTwo ) getActivity(); 9 activityTwo.setTextView(str, getArguments().getString("flg")); 10}
ActivityOne (呼び出したいメソッド)
Java
1public void setTextView(String value, String flg) { 2 if (flg.equals("test")) { 3 TextView textView = (TextView) findViewById(R.id.test); 4 textView.setText(value); 5 } else { 6 TextView textView = (TextView) findViewById(R.id.test2); 7 textView.setText(value); 8 } 9}
ActivityTwo (呼び出したいメソッド)
Java
1public void setTextView(String value) { 2 TextView textView = (TextView) findViewById(R.id.test); 3 textView.setText(value); 4}
ある一つのFragmentを、複数Activityで使いまわして、
Fragmentの処理の後に 呼び出し元のActivityのメソッド を呼びたいです。
今は Bundle にフラグをもたせて、フラグの値によってActivityを呼び分け しています。
これでも処理は問題ないのですが、このFragmentを使い回すActivityが今後もっと増えた場合に、
今のようにフラグの値で判断してActivityを呼び分けるのは冗長というかかっこ悪いなと感じています。
Fragmentで呼び出し元のActivityを判断する より良い方法 がもしあればご教授頂きたいです。
お時間ある方いらっしゃいましたらご助力頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/31 00:01
2019/07/31 01:31