最近做一个android应用,发现android自带的alertDialog太丑了,想进行改造,开始想到样式,经过一番尝试,失败。。然后想到皮肤,也不行。后来想到一个极为简单的方法,继承重写。。。
然后样子就成下图那样了。
代码:
使用:
和传统方式没区别。。。
然后样子就成下图那样了。
代码:
public class CustomAlertDialog extends AlertDialog.Builder {
LayoutInflater inflater;
View container;
TextView tx_title;
TextView tx_message;
Context mContext;
View cancel;
AlertDialog alertDialog;
View ok;
public CustomAlertDialog(Context context,String title,String msg) {
super(context);
mContext = context;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
container = inflater.inflate(R.layout.widget_custom_alertdialog, null);
setView(container);
cancel = container.findViewById(R.id.cancel);
ok = container.findViewById(R.id.ok);
tx_title = (TextView) container.findViewById(R.id.title);
tx_message = (TextView) container.findViewById(R.id.message);
if(title==null){
title="友情提示";
}
tx_title.setText(title);
tx_message.setText(msg);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
}
public Builder setNegativeButton(CharSequence text, final OnClickListener listener) {
cancel.setVisibility(View.VISIBLE);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onClick(alertDialog, 0);
alertDialog.dismiss();
}
});
return this;
}
public Builder setPositiveButton(final OnClickListener listener) {
ok.setVisibility(View.VISIBLE);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onClick(alertDialog, 0);
}
});
return this;
}
@Override
public AlertDialog create() {
alertDialog= super.create();
return alertDialog;
}
}
使用:
new CustomAlertDialog(cont, null, "退出程序?")
.setPositiveButton(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
AppManager.getAppManager().AppExit(cont);
}
}).create().show();;
}
和传统方式没区别。。。