Android-AlertDialog Button事件
近几天弄android自定义对话框的时候发现button点击事件触发不了,后面查了原来是AlertDialog会默认触发DialogInterface.OnClickListener事件,所以应在事件前面添加包名解决这个问题:android.view.View.OnClickListener;
/** * 显示自定义的对话框 * * @param context * 上下文 * @param clickListeners * 监听事件组 * @param resId * 控件资源ID组 * @param viewId * 视图资源ID */ public void show(Context context, android.view.View.OnClickListener[] clickListeners, int[] resId, int viewId) { int resLength = resId.length; int clickLength = clickListeners.length; if (resLength != clickLength) { // 判断传入的监听器和所要设置按钮事件数量是否相同,不同直接返回,避免抛出异常 return; } LayoutInflater inflater = LayoutInflater.from(context); // 定义对话框的UI View view = inflater.inflate(viewId, null); AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setView(view); builder.create(); for (int i = 0; i < resLength; i++) { // 控件响应对应的事件 view.findViewById(resId[i]).setOnClickListener(clickListeners[i]); } builder.show(); }