PCスペック
Windows10 HOME 64bit
メモリ 32GB
プロセッサ Intel Core i7-8700CPU 3.20GHz
Android Studio 3.4.1(最新ver)
デモ用端末(XPERIA OS:7.0 API 24)
MainActivity内に,内部クラスAlertDialogFragment extends DialogFragmentを実装して,アラートダイアログを使えるようにしたいと思っています.
https://akira-watson.com/android/alertdialog.html
を参考にして書き換えていたのですが,
MainActivityクラスで定義したグローバル変数が使用したかったため,「public static class AlertDialogFragment extends DialogFragment」を「public class AlertDialogFragment extends DialogFragment」のように,staticを削除してみました.
すると,AlertDialogFragmentに赤波線が出現し,
This fragment inner class should be static.このこのフラグメント内部クラスを静的である必要があります.と表示されました.
前に似たような質問(グローバル変数を使いたい)をした時には,staticを削除することで解決したのですが,今回の内部クラスではなぜstaticを取り外すことができないのでしょうか?
java
1 2ArrayList<String> List = new ArrayList<String>();//グローバル変数List 3 4 5// DialogFragment を継承したクラス 6 public class AlertDialogFragment extends DialogFragment { 7 8 @Override 9 @NonNull 10 public Dialog onCreateDialog(Bundle savedInstanceState) { 11 12 AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); 13 14 alert.setItems(List, new DialogInterface.OnClickListener() { 15 @Override 16 public void onClick(DialogInterface dialog, int idx) { 17 // i番目を選択したとき 18 if (idx == i-1) { 19 setMassage(List.get(i-1)); 20 } 21 } 22 }); 23 24 return alert.create(); 25 } 26 27 private void setMassage(String message) { 28 MainActivity mainActivity = (MainActivity) getActivity(); 29 mainActivity.setTextView(message); 30 } 31 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/29 02:59