1,在layout里面新建一个布局文件,起名common_dialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="285dp"
android:layout_height="wrap_content"
android:background="@drawable/common_white_bg_round_cornor_bg"
android:gravity="center_horizontal"
android:paddingTop="20dp"
android:baselineAligned="false"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/dialogIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_centerHorizontal="true"
android:src="@mipmap/dialog_icon_exclam" />
<TextView
android:id="@+id/ivText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:layout_centerHorizontal="true"
android:text="13345676789"
android:textColor="#ffffff"
android:textSize="12sp"
android:visibility="gone" />
</RelativeLayout>
<TextView
android:id="@+id/dialogTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="22dp"
android:paddingRight="22dp"
android:gravity="center_horizontal"
android:textColor="#333333"
android:textSize="19sp" />
<TextView
android:id="@+id/dialogContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lineSpacingExtra="7dp"
android:paddingLeft="22dp"
android:paddingRight="22dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:textColor="#666666"
android:textSize="14sp" />
<LinearLayout
android:id="@+id/dialogContentListLayout"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lineSpacingExtra="7dp"
android:paddingLeft="22dp"
android:paddingRight="22dp"
android:visibility="gone"
android:orientation="vertical"/>
<LinearLayout
android:id="@+id/dialogContentCheckboxLayout"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lineSpacingExtra="7dp"
android:paddingLeft="22dp"
android:paddingRight="22dp"
android:layout_gravity="left"
android:visibility="gone"
android:orientation="vertical">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下次不再提示"
android:textColor="#999999"
android:button="@null"
android:background="@null"
android:drawableLeft="@drawable/round_radio_selector"
android:drawablePadding="5dp"
/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="20dp"
android:background="#ECECEC" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp">
<Button
android:id="@+id/dialogBtnOne"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@null"
android:drawableRight="@drawable/common_inner_vertical_line"
android:gravity="center"
android:clickable="true"
android:textColor="#343C5C"
android:text="取消"
android:textSize="17sp" />
<Button
android:id="@+id/dialogBtnTwo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@null"
android:gravity="center"
android:text="好"
android:clickable="true"
android:textColor="#1E96FA"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
其中background表示对话框是一个矩形会话框,并设置他的填充色和描边。在drawable里面新建一个文件命名common_white_bg_round_cornor_bg。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff"></solid>
<corners android:radius="2dp"/>
<stroke
android:color="#ffffff"
android:width="1dp"/>
</shape>
至于baselineAligned属性,主要作用是控制一个布局里面的视图是对齐还是不对齐,具体自己百度。
round_radio_selector这个资源也是要在drawable里面新建一个名为round_radio_selector的文件:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/ic_select_disable" android:state_checked="true" android:state_enabled="false" />
<item android:drawable="@mipmap/common_icon_select_pressed" android:state_checked="true" android:state_enabled="true" />
<item android:drawable="@mipmap/common_icon_select_normal" />
</selector>
common_inner_vertical_line也是在drawable里面新建名为common_inner_vertical_line的文件如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="1dp" android:height="1920px"/>
<solid android:color="#ECECEC"/>
</shape>
<style name="CommonDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowNoTitle">true</item>
<!-- 无标题 -->
<item name="android:windowBackground">#000</item>
<!-- 背景透明 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowContentOverlay">@null</item>
</style>
以上文件中所使用到的图片文件我已经上传到我百度云,需要的可以给我留言,我会给你们下载图片的链接:
2,新建CommonDialog.java文件,进程Dialog
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.didi.es.base.activitymgr.ActivityManager;
import com.didi.es.base.util.ResourcesUtil;
import com.didi.es.base.util.TextUtil;
import com.didi.es.psngr.R;
import java.util.List;
public class CommonDialog extends Dialog implements View.OnClickListener {
private Context mContext;
/**
* 对话框上面的图标
*/
private ImageView dialogIcon;
/**
* title部分
*/
private TextView dialogTitle;
/**
* 内容部分
*/
private TextView dialogContent;
/**
* 图片文字部分
*/
private TextView ivText;
/**
* 对话框第一个按钮 和 第二个按钮
*/
private Button dialogBtnOne, dialogBtnTwo;
private CommonDialogListener listener;
private LinearLayout dialogContentListLayout;
private LinearLayout dialogContentCheckboxLayout;
private CheckBox checkBox;
public CommonDialog(Context context) {
super(context, R.style.CommonDialog);
mContext = context;
setContentView(R.layout.common_dialog);
initLayout();
}
private void initLayout() {
dialogIcon = (ImageView) findViewById(R.id.dialogIcon);
dialogTitle = (TextView) findViewById(R.id.dialogTitle);
// dialogTitle.getPaint().setFakeBoldText(true);
dialogContent = (TextView) findViewById(R.id.dialogContent);
ivText = (TextView)findViewById(R.id.ivText);
dialogBtnOne = (Button) findViewById(R.id.dialogBtnOne);
dialogBtnTwo = (Button) findViewById(R.id.dialogBtnTwo);
dialogContentListLayout = (LinearLayout) findViewById(R.id.dialogContentListLayout);
dialogContentCheckboxLayout = (LinearLayout) findViewById(R.id.dialogContentCheckboxLayout);
checkBox = (CheckBox) findViewById(R.id.checkbox);
// checkBox.setOnClickListener(this);
dialogBtnOne.setOnClickListener(this);
dialogBtnTwo.setOnClickListener(this);
}
/**
* @param dialogIconResId 图片的资源ID 传-1表示隐藏此控件
* @param dialogTitleResId title的资源ID 传-1表示隐藏此控件
* @param dialogContentResId 内容的资源ID 传-1表示隐藏此控件
* @param dialogBtnOneResId 第一个按钮的文字资源ID 传-1表示隐藏此控件
* @param dialogBtnTwoResId 第二个按钮的文字资源ID 必须存在
* @return
*/
public CommonDialog set(int dialogIconResId, int dialogTitleResId, int dialogContentResId, int dialogBtnOneResId, int dialogBtnTwoResId) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if (dialogTitleResId < 0) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(dialogTitleResId);
}
if (dialogContentResId < 0) {
dialogContent.setVisibility(View.GONE);
} else {
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(dialogContentResId);
}
if (dialogBtnOneResId < 0) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneResId);
}
dialogBtnTwo.setText(dialogBtnTwoResId);
return this;
}
public CommonDialog set(int dialogIconResId, String title, int dialogContentResId, int dialogBtnOneResId, int dialogBtnTwoResId) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(title);
if (dialogContentResId < 0) {
dialogContent.setVisibility(View.GONE);
} else {
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(dialogContentResId);
}
if (dialogBtnOneResId < 0) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneResId);
}
dialogBtnTwo.setText(dialogBtnTwoResId);
return this;
}
/**
* @param dialogIconResId 传-1表示需要隐藏此项
* @param dialogTitleTxt 传 null表示需要隐藏此项
* @param dialogContentTxt 传 null表示需要隐藏此项
* @param dialogBtnOneTxt 传null表示不显示此项(取消按钮)
* @param dialogBtnTwoTxt 不能为null(确定按钮)
* @return
*/
public CommonDialog set(int dialogIconResId, String dialogTitleTxt, String dialogContentTxt, String dialogBtnOneTxt, String dialogBtnTwoTxt) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if (dialogTitleTxt == null) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(dialogTitleTxt);
// TextUtil.changeColor(dialogTitle, dialogTitleTxt, "{", "}", ResourcesUtil.getColor(R.color.color_s_orange));
}
if (dialogContentTxt == null) {
dialogContent.setVisibility(View.GONE);
} else {
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(dialogContentTxt);
}
if (TextUtil.isEmpty(dialogBtnOneTxt)) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneTxt);
}
dialogBtnTwo.setText(dialogBtnTwoTxt);
return this;
}
/**
* @param dialogIconResId 传-1表示需要隐藏此项
* @param dialogTitleTxt 传 null表示需要隐藏此项
* @param dialogContentList 传 null表示需要隐藏此项
* @param dialogBtnOneTxt 传null表示不显示此项
* @param dialogBtnTwoTxt 不能为null
* @return
*/
public CommonDialog set(List<String> dialogContentList, int dialogIconResId, String dialogTitleTxt, String dialogBtnOneTxt, String dialogBtnTwoTxt) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if (dialogTitleTxt == null) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(dialogTitleTxt);
}
dialogContent.setVisibility(View.GONE);
//当内容列表为空时,不显示列表样式
if (dialogContentList == null || dialogContentList.size() == 0) {
dialogContentListLayout.setVisibility(View.GONE);
//当内容列表长度为1时,以普通内容形式展示
} else if (dialogContentList.size() == 1) {
dialogContentListLayout.setVisibility(View.GONE);
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(dialogContentList.get(0));
} else {
dialogContentListLayout.setVisibility(View.VISIBLE);
dialogContentListLayout.removeAllViews();
for (int i = 0; i < dialogContentList.size(); i++) {
addListItem(dialogContentListLayout, dialogContentList.get(i));
}
}
if (TextUtil.isEmpty(dialogBtnOneTxt)) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneTxt);
}
dialogBtnTwo.setText(dialogBtnTwoTxt);
return this;
}
/**
* 可设置内容的颜色,要加颜色的字体默认用{带颜色的文字}来格式化
* @param dialogIconResId 传-1表示需要隐藏此项
* @param title 传 null表示需要隐藏此项
* @param content 传 null表示需要隐藏此项
* @param dialogBtnOneTxt 传null表示不显示此项
* @param dialogBtnTwoTxt 不能为null
* @param contentColor 字体的颜色值(不是resouceId),不需要传0即可
* @return
*/
public CommonDialog set(int dialogIconResId, String title,String content, String dialogBtnOneTxt, String dialogBtnTwoTxt,int contentColor) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if (title == null) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(title);
}
dialogContent.setVisibility(View.GONE);
//当内容列表为空时,不显示列表样式
if (TextUtils.isEmpty(content)) {
dialogContentListLayout.setVisibility(View.GONE);
//当内容列表长度为1时,以普通内容形式展示
} else {
dialogContentListLayout.setVisibility(View.GONE);
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(content);
if(contentColor!=0){
TextUtil.changeColor(dialogContent, content, "{", "}", contentColor);
}
}
if (TextUtil.isEmpty(dialogBtnOneTxt)) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneTxt);
}
dialogBtnTwo.setText(dialogBtnTwoTxt);
return this;
}
private void addListItem(LinearLayout parent, String item) {
DialogListItem itemView = new DialogListItem(mContext);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.topMargin = ResourcesUtil.getDimensionPixelSize(R.dimen.dialog_list_item_margin);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
itemView.setContent(item);
itemView.setLayoutParams(lp);
// itemView.setPadding(60, 0, 86, 30);
parent.addView(itemView);
}
/**
* @param dialogIconResId 传-1表示需要隐藏此项
* @param dialogTitleTxt 传 null表示需要隐藏此项
* @param dialogContentTxt 传 null表示需要隐藏此项
* @param dialogBtnOneTxt 传null表示不显示此项(取消按钮)
* @param dialogBtnTwoTxt 不能为null(确定按钮)
* @param checkboxTxt 不能为null(checkbox 文字)
* @return
*/
public CommonDialog set(int dialogIconResId, String dialogTitleTxt, String dialogContentTxt, String dialogBtnOneTxt, String dialogBtnTwoTxt, String checkboxTxt) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if (dialogTitleTxt == null) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(dialogTitleTxt);
// TextUtil.changeColor(dialogTitle, dialogTitleTxt, "{", "}", ResourcesUtil.getColor(R.color.color_s_orange));
}
if (dialogContentTxt == null) {
dialogContent.setVisibility(View.GONE);
} else {
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(dialogContentTxt);
}
if (TextUtil.isEmpty(dialogBtnOneTxt)) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneTxt);
}
if (TextUtil.isEmpty(checkboxTxt)) {
dialogContentCheckboxLayout.setVisibility(View.GONE);
} else {
dialogContentCheckboxLayout.setVisibility(View.VISIBLE);
checkBox.setText(checkboxTxt);
}
dialogBtnTwo.setText(dialogBtnTwoTxt);
return this;
}
/**
* @param dialogIconResId 传-1表示需要隐藏此项
* @param dialogTitleTxt 传 null表示需要隐藏此项
* @param dialogContentTxt 传 null表示需要隐藏此项
* @param dialogBtnOneTxt 传null表示不显示此项(取消按钮)
* @param dialogBtnTwoTxt 不能为null(确定按钮)
* @param checkboxTxt 不能为null(checkbox 文字)
* @param contentColor 内容颜色
* @return
*/
public CommonDialog set(int dialogIconResId, String dialogTitleTxt, String dialogContentTxt, String dialogBtnOneTxt, String dialogBtnTwoTxt, int contentColor, String checkboxTxt) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if (dialogTitleTxt == null) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(dialogTitleTxt);
// TextUtil.changeColor(dialogTitle, dialogTitleTxt, "{", "}", ResourcesUtil.getColor(R.color.color_s_orange));
}
dialogContent.setVisibility(View.GONE);
//当内容列表为空时,不显示列表样式
if (TextUtils.isEmpty(dialogContentTxt)) {
dialogContentListLayout.setVisibility(View.GONE);
//当内容列表长度为1时,以普通内容形式展示
} else {
dialogContentListLayout.setVisibility(View.GONE);
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(dialogContentTxt);
if(contentColor!=0){
TextUtil.changeColor(dialogContent, dialogContentTxt, "{", "}", contentColor);
}
}
if (TextUtil.isEmpty(dialogBtnOneTxt)) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(dialogBtnOneTxt);
}
if (TextUtil.isEmpty(checkboxTxt)) {
dialogContentCheckboxLayout.setVisibility(View.GONE);
} else {
dialogContentCheckboxLayout.setVisibility(View.VISIBLE);
checkBox.setText(checkboxTxt);
}
dialogBtnTwo.setText(dialogBtnTwoTxt);
return this;
}
/**
* @param dialogIconResId 传-1表示需要隐藏此项
* @param text 文字列表 0、图片文字 1、title 2、content 3、BtnOne文字 4、BtnTwo文字(不能为null)
* @return
*/
public CommonDialog set(int dialogIconResId,List<String> text) {
if (dialogIconResId < 0) {
dialogIcon.setVisibility(View.GONE);
} else {
dialogIcon.setVisibility(View.VISIBLE);
dialogIcon.setImageResource(dialogIconResId);
}
if(text.get(0)==null){
ivText.setVisibility(View.GONE);
}
else{
ivText.setVisibility(View.VISIBLE);
ivText.setText(text.get(0));
ivText.setAlpha(0.8f);
ivText.setBackgroundColor(Color.argb(0, 0, 0, 0));
}
if (text.get(1) == null) {
dialogTitle.setVisibility(View.GONE);
} else {
dialogTitle.setVisibility(View.VISIBLE);
dialogTitle.setText(text.get(1));
}
if (text.get(2) == null) {
dialogContent.setVisibility(View.GONE);
} else {
dialogContent.setVisibility(View.VISIBLE);
dialogContent.setText(text.get(2));
}
if (TextUtil.isEmpty(text.get(3))) {
dialogBtnOne.setVisibility(View.GONE);
} else {
dialogBtnOne.setVisibility(View.VISIBLE);
dialogBtnOne.setText(text.get(3));
}
dialogBtnTwo.setText(text.get(4));
return this;
}
//如果编译不通过的话,可以把这个收尾方法去掉,使用Dialog原生的show()方法展示对话框
@Override
public void show() {
Context context = mContext;
if (context == null) return;
if (context instanceof Activity) {
Activity activity = (Activity) context;
if (ActivityManager.getInstance().getTopActivityInApp() == activity && !activity.isFinishing())
try {
super.show();
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void cancel() {
if (isShowing()) {
try {
super.cancel();
} catch (Exception e) {
e.printStackTrace();
}
}
mContext = null;
dialogIcon = null;
dialogTitle = null;
dialogContent = null;
dialogBtnOne = null;
dialogBtnTwo = null;
listener = null;
}
public CommonDialog setListener(CommonDialogListener listener) {
this.listener = listener;
return this;
}
public boolean isCheckBoxChecked() {
return checkBox.isChecked();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.dialogBtnOne:
if (listener != null) {
listener.cancel();
}
cancel();
break;
case R.id.dialogBtnTwo:
if (listener != null) {
listener.submit();
}
cancel();
break;
// case R.id.checkbox:
// if (listener != null) {
// listener.submit();
// }
// break;
}
}
public static abstract class CommonDialogListener {
/**
* 有两个按钮的确认事件 或 只有一个按钮的事件
*/
public void submit() {
}
/**
* 取消按钮事件
*/
public void cancel() {
}
}
/**
* 对话框图标ICON类型
*/
public enum IconType {
/**
* 对勾
*/
RIGHT(R.drawable.dialog_icon_success),
/**
* 叹号
*/
INFO(R.drawable.dialog_icon_exclam),
/**
* 啥也没有
*/
NONE(-1);
private int resId;
private IconType(int resId) {
this.resId = resId;
}
public int resId() {
return resId;
}
}
}
import android.content.Context;
import android.text.Spanned;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.didi.es.psngr.R;
/**
* 列表型对话框的每一项
* @author liuwei
*/
public class DialogListItem extends RelativeLayout {
/**显示的星号**/
private TextView star;
/**显示的文案**/
private TextView content;
public DialogListItem(Context context) {
this(context, null);
}
public DialogListItem(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public DialogListItem(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initViews(context);
}
private void initViews(Context context) {
LayoutInflater.from(context).inflate(R.layout.dialog_list_item, this);
star = (TextView) findViewById(R.id.star);
content = (TextView) findViewById(R.id.content);
}
public void setContent(String content) {
this.content.setText(content);
}
public void setSpannedContent(Spanned content) {
this.content.setText(content);
}
public void setStarInvisible() {
star.setVisibility(INVISIBLE);
}
}
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import android.widget.Toast;
public class DownloadManager {
private static DownloadManager downloadManager;
private static Context c;
private DownloadManager(){
LocalBroadcastManager mgr = LocalBroadcastManager.getInstance(c);
mgr.registerReceiver(mReceiver, new IntentFilter(DownloadService.DOWNLOAD_PROGRESS_ACTION));
}
DownloadService.ProgressReceiver mReceiver=new DownloadService.ProgressReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
Log.e("DownloadManager","ykyk");
Toast.makeText(c,"yk",Toast.LENGTH_SHORT).show();
}
};
public static DownloadManager getInstance(Context context){
if (downloadManager==null){
c=context;
downloadManager=new DownloadManager();
}
return downloadManager;
}
public void startSer(String url,String path){
Intent intent=new Intent(c,DownloadService.class);
intent.putExtra("url",url);
intent.putExtra("path",path);
Log.e("DownloadManger","yly---1");
c.startService(intent);
}
}
3,展示对话框:
@Override
public void onClick(View v) {
Log.e("MainAcitvity","onclick");
myDialog=new CommonDialog(MainActivity.this);
myDialog.set(contentList,-1,
"更新提示", "取消",
"升级").setListener(dialogUpdateListener);
myDialog.setCancelable(true);
myDialog.setCanceledOnTouchOutside(false);
myDialog.show();
}
4,对话框列表布局
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/star"
android:layout_width="4dp"
android:layout_height="4dp"
android:layout_alignParentTop="true"
android:layout_marginTop="5dp"
android:background="@drawable/round_point" />
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="7dp"
android:layout_toRightOf="@id/star"
android:lineSpacingExtra="10px"
android:singleLine="false"
android:text="如果您在收到车费账单30分钟内未主动确认支付,微信支付会自动扣款,并以短信方式通知您"
android:textColor="#666666"
android:textSize="14sp" />
</merge>
关于merge的使用方法,可以查看这一篇文章:
merge使用方法详解https://blog.csdn.net/yaoyaoyao_123/article/details/89183518