我有我自己的布局。
单击布局上的肯定按钮后,我想从 editText 接收文本。但是在 onPreferenceChange 中,我总是只得到默认值。
似乎我需要以某种方式将自己的 EditText 绑定到首选项,但我不知道如何以及在哪里执行此操作。
有谁能够帮我?
我有我自己的布局。
单击布局上的肯定按钮后,我想从 editText 接收文本。但是在 onPreferenceChange 中,我总是只得到默认值。
似乎我需要以某种方式将自己的 EditText 绑定到首选项,但我不知道如何以及在哪里执行此操作。
有谁能够帮我?
回答我自己的问题:
首先,在 PreferenceScreen 中,您需要声明:<full.path.to.your.OwnLayoutClass android:name="whatever" android:dialogLayout="@layout/your_own_layout" />
your_own_layout 可以是任何你想要的东西,带有按钮的线性布局,editTexts,根据你的意愿。
Essential 是代表您自己的偏好对话框的类。下面是一个简单的例子来说明如何做到这一点:
public class YourOwnLayoutClass extends DialogPreference {
private LinearLayout mView;
public YourOwnLayoutClass(Context context, AttributeSet attrs) {
super(context, attrs);
setPersistent(false);
setDialogLayoutResource(R.layout.your_own_layout);
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
mView = (LinearLayout) view;
}
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
if (positiveResult) {
// get value from editFields, do whatever you want here :)
// you can acces them through mView variable very easily
}
}
}
重要参考: 我需要在首选项中有一个自定义对话框