繁体   English   中英

DialogPreference setSummary()

[英]DialogPreference setSummary()

单击时,我有一个自定义首选项显示一个TimePicker对话框。 当要选择一个显示所选时间的值时,我想为首选项设置摘要。 怎么办呢? 我不明白如何使用setSummary(CharSequence)方法。

自定义首选项:

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?
        }
      } 
}

主要活动:

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

    getFragmentManager().beginTransaction().replace(android.R.id.content,
            new PrefsFragment()).commit();
  }
}

在DialogPreference构造函数中使用以下几行

setTitle("Your Preference Name goes here");
setSummary("Your summary goes here")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM