package com.tevinjeffrey.stringpicker; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; public class StringPickerDialog extends DialogFragment { private OnClickListener mListener; private Activity mActivity; @Override public void onAttach(Activity activity) { if (!(activity instanceof OnClickListener)) { throw new RuntimeException("callback is must implements StringPickerDialog.OnClickListener!"); } mListener = (OnClickListener) activity; mActivity = activity; super.onAttach(activity); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { LayoutInflater inflater = mActivity.getLayoutInflater(); View view = inflater.inflate(R.layout.string_picker_dialog, null, false); final StringPicker stringPicker = (StringPicker) view.findViewById(R.id.string_picker); final Bundle params = getArguments(); if (params == null) { throw new RuntimeException("params is null!"); } final String[] values = params.getStringArray(getValue(R.string.string_picker_dialog_values)); stringPicker.setValues(values); AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setTitle(getValue(R.string.string_picker_dialog_title)); builder.setPositiveButton(getValue(R.string.string_picker_dialog_ok), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mListener.onClick(stringPicker.getCurrentValue()); } }); builder.setNegativeButton(getValue(R.string.string_picker_dialog_cancel), null); builder.setView(view); return builder.create(); } private String getValue(final int resId) { return mActivity.getString(resId); } public interface OnClickListener { void onClick(final String value); } }