[android] DialogFragmentの実装
目次
DialogFragmentの実装
package パッケージ名; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.widget.Toast; public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDialogFragment dialog = new MyDialogFragment(); dialog.show(getSupportFragmentManager(), "dialog"); //ダイアログを表示 } public void doPositiveClick() { Toast.makeText(this, "OKボタンがクリックされました", Toast.LENGTH_SHORT).show(); } public void doNegativeClick() { Toast.makeText(this, "Cancelボタンがクリックされました", Toast.LENGTH_SHORT).show(); } public static class MyDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("タイトル"); builder.setMessage("メッセージ"); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { MainActivity activity = (MainActivity) getActivity(); //staticから呼び出すためActivityから関数を呼び出し activity.doPositiveClick(); } }); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { MainActivity activity = (MainActivity) getActivity(); activity.doPositiveClick(); } }); return builder.create(); } } }
注意:
DialogFragmentはstaticである必要があるため、OKボタンをおした時に関数を呼び出すときはActivityから明示的に呼び出す必要がある
コピペしてすぐ使えるアラートダイアログ集
コピペしてすぐ使えるアラートダイアログ集
*AlertDialog.Builder配下を入れ替えれば良い