HogeActivity.java
public class HogeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button button = findViewById(R.id.huga_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ダイアログを表示する
DialogFragment dialog = new DialogFragment();
// 注意: getFragmentManager()を使用するとエラーになる
dialog.show(getSupportFragmentManager(),"sample");
}
});
}
}
DialogFragment.java
public class BookReviewDialogFragment extends DialogFragment {
// ダイアログが生成された時に呼ばれるメソッド
public Dialog onCreateDialog(Bundle savedInstanceState) {
// ダイアログ生成 AlertDialogのBuilderクラスを指定してインスタンス化します
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
// タイトル設定
dialogBuilder.setTitle("ダイアログタイトル");
// 表示する文章設定
dialogBuilder.setMessage("値を入力してください");
// 入力フィールド作成
final EditText editText = new EditText(getActivity());
dialogBuilder.setView(editText);
// OKボタン作成
dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// editTextから値を取得
String returnValue = editText.getText().toString();
// HogeActivityのインスタンスを取得
HogeActivity hogeActivity = (HogeActivity) getActivity();
hogeActivity.setTextView(returnValue);
}
});
// NGボタン作成
dialogBuilder.setNegativeButton("NG", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 何もしないで閉じる
}
});
// dialogBulderを返す
return dialogBuilder.create();
}
}
■ ダイアログフラグメントのOKボタンの文字を@stringsから参照する
Resources res = getResources();
// OKボタン作成 dialogBuilder.setPositiveButton(res.getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});