DialogPreference是抽象方法,所以要自定义一个MyDialogPreference去继承它才能使用。
public class MyDialogPreference extends DialogPreference{
public MyDialogPreference(Context context) {
this(context,null);
// TODO Auto-generated constructor stub
}
public MyDialogPreference(Context context, AttributeSet attrs) {
this(context, attrs,0);
// TODO Auto-generated constructor stub
}
public MyDialogPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
}
preference.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="emample" >
<com.example.MyDialogPreference
android:key="myDialogPreference"
android:title="Dialog">
</com.example.MyDialogPreference>
</PreferenceCategory>
</PreferenceScreen>然后DialogPreference就可以像Dialog一样
MyDialogPreference myDialogPreference = (MyDialogPreference) findPreference("myDialogPreference");
myDialogPreference.setDialogTitle("Dialog");//设置title:
myDialogPreference.setDialogMessage("Message");//设置message
myDialogPreference.setPositiveButtonText("确定");//设置positivebutton,不过这里不能设置监听
myDialogPreference.setNegativeButtonText("取消");//同上
监听positivebutton和negativebutton:
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.preference.DialogPreference;
import android.util.AttributeSet;
public class MyDialogPreference extends DialogPreference implements OnClickListener{
public MyDialogPreference(Context context) {
this(context,null);
// TODO Auto-generated constructor stub
}
public MyDialogPreference(Context context, AttributeSet attrs) {
this(context, attrs,0);
// TODO Auto-generated constructor stub
}
public MyDialogPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
switch(which){
case Dialog.BUTTON_POSITIVE:
//dosomething
break;
case Dialog.BUTTON_NEGATIVE:
//dosomething
break;
case Dialog.BUTTON_NEUTRAL:
//dosomething
break;
}
super.onClick(dialog, which);
}
}
本文介绍如何自定义DialogPreference类以创建带有自定义对话框的偏好设置。通过继承DialogPreference并实现点击监听,可以轻松地为Android应用添加带有确认和取消按钮的对话框偏好设置。
1万+

被折叠的 条评论
为什么被折叠?



