処理の確認画面などで確認する場合などに使用する
終了前に確認したり、登録処理での確認などに使用する
実装
画面
Activity
package jp.mshige1979.app.sampleappdialog1; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends ActionBarActivity { private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button)findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // ダイアログを表示する DialogFragment newFragment = new TestDialogFragment(); newFragment.show(getFragmentManager(), "test"); } }); } public static class TestDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the Builder class for convenient dialog construction AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage("ダイアログ") .setPositiveButton("はい", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // FIRE ZE MISSILES! Toast toast = Toast.makeText(getActivity(), "はい", Toast.LENGTH_SHORT); toast.show(); } }) .setNegativeButton("キャンセル", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // User cancelled the dialog Toast toast = Toast.makeText(getActivity(), "いいえ", Toast.LENGTH_SHORT); toast.show(); } }); // Create the AlertDialog object and return it return builder.create(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
↓
所感
Fragmentとか出てきたそういえばFragmentで画面を制御するとかの話は聞いたことがある。
これを使うことで多少画面をもう少しうまく使えるとか…
まあ、そのうちやるかも