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