[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配下を入れ替えれば良い

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です