0

I have a Custom Preference displaying a TimePicker dialog when clicked. I want to set the summary for the preference when a value is choosed displaying the chosen time. How could this be done? I don't understand how to use the setSummary(CharSequence) method.

The Custom Preference:

public class TimePreference extends DialogPreference {

    final Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);

      private TimePicker timePicker;

      public TimePreference(Context context, AttributeSet attributes) {
        super(context, attributes);
        setPersistent(false);
      }

      @Override
      public void onBindDialogView(View view) {
        super.onBindDialogView(view);

        timePicker = (TimePicker) view.findViewById(R.id.prefTimePicker);
        timePicker.setCurrentHour(getSharedPreferences().getInt(getKey() + ".hour", hour));
        timePicker.setCurrentMinute(getSharedPreferences().getInt(getKey() + ".minute", minute));
        timePicker.setIs24HourView(DateFormat.is24HourFormat(timePicker.getContext()));
      }

      @Override
      protected void onDialogClosed(boolean okToSave) {
        super.onDialogClosed(okToSave);
        if (okToSave) {
          timePicker.clearFocus();
          SharedPreferences.Editor editor = getEditor();
          editor.putInt(getKey() + ".hour", timePicker.getCurrentHour());
          editor.putInt(getKey() + ".minute", timePicker.getCurrentMinute());
          editor.commit();
          // Here should be the setSummary() method, maybe?
        }
      } 
}

The main activity:

public class MainActivity extends Activity 
{   
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getFragmentManager().beginTransaction().replace(android.R.id.content,
            new PrefsFragment()).commit();
  }
}
koral
  • 2,513
  • 1
  • 32
  • 41
stensootla
  • 13,945
  • 9
  • 45
  • 68
  • See http://stackoverflow.com/questions/531427/how-do-i-display-the-current-value-of-an-android-preference-in-the-preference-su – j.holetzeck May 02 '13 at 21:42

1 Answers1

0

Use following lines in your DialogPreference constructor

setTitle("Your Preference Name goes here");
setSummary("Your summary goes here")
Kirk
  • 4,957
  • 2
  • 32
  • 59