【Android】DialogFragmentの基本
DialogFragmentの使い方です。
今までは「Activity.showDialog」を使用していましたが、APIレベル13で非推奨となりました。
これからはDialogFragmentを使用して、ダイアログを表示することになります。
1.DialogFragmentのクラスを作る
今回は、簡単な「はい」「いいえ」のダイアログを作成してみます。
import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.os.Bundle; public class TestDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage("テストダイアログ") .setPositiveButton("はい", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { // クリック時の処理 } }) .setNegativeButton("いいえ", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { // クリック時の処理 } }); return builder.create(); } }
2.ダイアログを表示する
DialogFragmentのインスタンスを作成し、「show」で表示します。
下記例「show」の"test1″は、フラグメントの状態を保存して、復元する時に使用するタグ名になります。「findFragmentByTag()」を呼び出すことでフラグメントのインスタンスを取得できます。
import android.os.Bundle; import android.app.Activity; import android.app.DialogFragment; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // ダイアログを表示する DialogFragment newFragment = new TestDialogFragment(); newFragment.show(getFragmentManager(), "test1"); } }