其他都很好写,注意setSingleChoiceItems()有四个重载的方法:
1、从资源文件中装载数据:
public AlertDialog.Builder setSingleChoiceItems(int itemsId, int checkedItem, final OnClickListener listener)
2、从数据集中装载数据
public AlertDialog.Builder setSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn, final OnClickListener listener)
3、从字符串数组中装载数据
public AlertDialog.Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
4、从ListAdapter对象中装载数据
public AlertDialog.Builder setSingleChoiceItems(ListAdapter adpater, int checkedItem, final OnClickListener listener)
我们只需要关注第二个参数:
checkedItem:指定哪个项目被选中,默认为0表示选中第一个项目,-1表示没有项目被选中
所以我们只需要先从保存的数据中得到原先的序号,将此序号作为checkedItem参数传入即可。
package com.example.chen.lolhelper.util;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.View;
/**
* DialogUtils
* Dialog弹窗工具类
* Created by chen on 2017/8/24.
*/
public class DialogUtils {
/**
*
* @param context
* @param titleResId
* @param messageResId
* @param cancelable
* @param yesOnClick
* @param noOnClick
*/
public static void showDialog(Context context, int titleResId, int messageResId, boolean cancelable,
DialogInterface.OnClickListener yesOnClick,
DialogInterface.OnClickListener noOnClick){
AlertDialog dialog = new AlertDialog.Builder(context).setTitle(titleResId)
.setMessage(messageResId).setCancelable(cancelable)
.setPositiveButton("yes",yesOnClick).setNegativeButton("no",noOnClick).create();
dialog.show();;
}
/**
* 自定义View
* @param context
* @param titleResId
* @param v
* @param cancelable
*/
public static void showDialog(Context context, int titleResId, View v,boolean cancelable){
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle(titleResId).setView(v).setCancelable(cancelable)
.setPositiveButton("yes",null).create();
dialog.show();
}
/**
*单选对话框
* @param context
* @param titleResId
* @param arrayId
* @param choiceOnClickListener
*/
public static void showMultiItemsDialog(Context context,int titleResId,int arrayId,
DialogInterface.OnClickListener choiceOnClickListener){
AlertDialog dialog = new AlertDialog.Builder(context).setTitle(titleResId)
.setSingleChoiceItems(arrayId,-1,choiceOnClickListener).setCancelable(true).create();
dialog.show();
}
}