步骤一:自定义一个工具类
//自定义一个工具类
public class DialogShowUtil{
//类中定义一个接口
public interface ClickListener {
void method();
}
public static AlertDialog alertDialog;
//这个就是封装的方法,其参数为接口 ClickListener c
public static void dialogShowHandle(Context context, String title, String content, String agree
, String disagree, ClickListener c) {//将接口ClickListener c作为该方法参数
AlertDialog.Builder builder = new AlertDialog.Builder(context);
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.activity_show_hint, null);
TextView tvTitle = (TextView) v.findViewById(R.id.car_title);
tvTitle.setText(title);
TextView tvContent = (TextView) v.findViewById(R.id.car_content);
tvContent.setText(content);
Button btn_agree = (Button) v.findViewById(R.id.car_agree_btn);
btn_agree.setText(agree);
Button btn_disagree = (Button) v.findViewById(R.id.car_disagree_btn);
btn_disagree.setText(disagree);
//builer.setView(v);//这里如果使用builer.setView(v),自定义布局只会覆盖title和button之间的那部分
final Dialog dialog = builder.create();
dialog.show();
dialog.getWindow().setContentView(v);//自定义布局应该在这里添加,要在dialog.show()的后面
//dialog.getWindow().setGravity(Gravity.CENTER);//可以设置显示的位置
btn_agree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
c.method();//执行接口的方法
}
});
btn_disagree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.dismiss();
}
});
}
}
步骤二:调用该工具类的封装方法
//调用该方法
DialogShowUtil.dialogShowHandle(mContext, null, mContext.getString(R.string.car_unlock_hint),
mContext.getString(R.string.car_ok), mContext.getString(R.string.car_cancel), new DialogShowUtil.ClickListener() {
//这里就是妙处 可以自定义随意更改方法操作逻辑
@Override
public void method() {
Log.e(CAR_CTRL_TAG,"执行了");
//执行 方法C
//执行 方法D
}
});