80,351
社区成员
发帖
与我相关
我的任务
分享
public class ListPreferenceEx extends ListPreference {
public ListPreferenceEx(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
super.onPrepareDialogBuilder(builder); // To change body of overridden
builder.setNegativeButton(null, null);
builder.setTitle(null);
}
}
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
builder = new AlertDialog.Builder(new ContextThemeWrapper(this.getContext(), R.style.ListDlgTheme));
super.onPrepareDialogBuilder(builder);
}
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
builder = new AlertDialog.Builder(new ContextThemeWrapper(this.getContext(), R.style.ListDlgTheme));
super.onPrepareDialogBuilder(builder);
}
public class ListPreferenceEx extends ListPreference
{
Context context1;
View menuView;
public ListPreferenceEx(Context context, AttributeSet attrs)
{
super(context, attrs);
context1=context;
}
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder)
{
//Builder builder1=new AlertDialog.Builder(new ContextThemeWrapper(context1, R.style.AlertDialogCustom));
//super.onPrepareDialogBuilder(builder); // To change body of overridden
// methods use File | Settings |
// File Templates.
//builder=new AlertDialog.Builder(new ContextThemeWrapper(context1, R.style.AlertDialogCustom));
menuView = View.inflate(context1, R.layout.add_tab, null);
/*builder.setNegativeButton(null, null);
builder.setTitle(null);*/
builder.setView(menuView);
}
}
这是我改写你的代码,显示出我想要的dialog,但是ListPreference就没有读取xml的数据,,,@Override
protected void onPrepareDialogBuilder(Builder builder) {
super.onPrepareDialogBuilder(builder);
if (mEntries == null || mEntryValues == null) {
throw new IllegalStateException(
"ListPreference requires an entries array and an entryValues array.");
}
mClickedDialogEntryIndex = getValueIndex();
builder.setSingleChoiceItems(mEntries, mClickedDialogEntryIndex,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mClickedDialogEntryIndex = which;
/*
* Clicking on an item simulates the positive button
* click, and dismisses the dialog.
*/
ListPreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE);
dialog.dismiss();
}
});
这是onPrepareDialogBuilder的源码,因为你在方法里面写super.onPrepareDialogBuilder(builder);所以它直接继承了父类的方法,所以改变不了,但是如果你要把这句话删除,就可以自己写dialog了,但是ListPreference的数据有读不出来了,你自己可以试试,,,