您的位置:首页 > 移动开发 > Android开发

关于Android DialogPreference的使用

2016-03-10 11:07 405 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息