【问题标题】:DialogPreference set title of DialogDialogPreference 设置Dialog的标题
【发布时间】:2013-06-19 04:57:30
【问题描述】:

我有一个 DialogPreference。我想设置它的对话框标题(setTitle()),但它不起作用。

我的代码:

public class RestoreDefaultApperanceDialogPreference extends DialogPreference {

    Dialog dialog;

    public RestoreDefaultApperanceDialogPreference(Context context,
            AttributeSet attrs) {
        super(context, attrs);

        dialog = getDialog();
        //dialog.setTitle("Restore default colors?"); //<- NOT WORKING!
        // TODO Auto-generated constructor stub
    }

    public RestoreDefaultApperanceDialogPreference(Context context,
            AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }
}

XML 文件(偏好类别):

<PreferenceCategory android:title="Appearance settings">
        <com.example.dictionary.ColorSelectPreference
            android:key="onlineRecognitionColor"
            android:title="Online recognision results color" 
            android:summary="Customize color of online recognition results."
        />
        <com.example.dictionary.ColorSelectPreference
            android:key="offlineRecognitionColor"
            android:title="Offline recognition results color" 
            android:summary="Customize color of offline recognition results."
        />
        <com.example.dictionary.RestoreDefaultApperanceDialogPreference
            android:key="restoreDefaultApperance"
            android:title="Restore default apperance" 
            android:summary="Choose this option to restore default apperance settings." 
        />
 </PreferenceCategory>

如何设置此对话框的标题

【问题讨论】:

  • 你试过了吗: public void setDialogTitle (CharSequence dialogTitle) 设置对话框的标题。这将显示在随后的对话框中。

标签: java android dialog listener preference


【解决方案1】:

使用setDialogTitle() 并覆盖onDialogClosed() 来捕获按钮点击并执行您的操作。

public RestoreDefaultApperanceDialogPreference(Context context,
        AttributeSet attrs) {
    super(context, attrs);

    setDialogTitle("Restore default colors?"); // <- this should work
}


@Override
protected void onDialogClosed(boolean positiveResult) {
    super.onDialogClosed(positiveResult);

    if (positiveResult) {
        // OK button is pressed
    } else {
        // Cancel button is pressed
    }
}

【讨论】:

  • 当我在首选项上调用 setTitle 时,它​​会同时更改对话框标题和首选项标题。我想要,即“点击重置设置”在偏好和“你确定吗?”在对话框上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
相关资源
最近更新 更多