Android-自定义Toast

来源:互联网 发布:正品篮球鞋淘宝店铺 编辑:程序博客网 时间:2024/06/06 05:56
public class CustomToast extends Toast {    public CustomToast(Context context) {        super(context);    }    public static class Builder {        private Context mContext;        private ImageView mImg;        private TextView mText, mSubText;        private boolean state, subTextVisible;        private String text, subText;        public Builder(Context context) {            this.mContext = context;        }        /**         * 设置提示状态:成功,失败         *         * @param state         */        public Builder setState(boolean state) {            this.state = state;            return this;        }        /**         * 设置文字         *         * @param str         */        public Builder setText(int str) {            this.text = mContext.getString(str);            return this;        }        /**         * 设置子文字,第二行         *         * @param visible         * @param str         */        public Builder setSubText(boolean visible, int str) {            this.subTextVisible = visible;            this.subText = mContext.getString(str);            return this;        }        public CustomToast create() {            CustomToast customToast = new CustomToast(mContext);            View view = LayoutInflater.from(mContext).inflate(R.layout.layout_toast, null);            mImg = (ImageView) view.findViewById(R.id.layout_toast_img);            mText = (TextView) view.findViewById(R.id.layout_toast_text);            mSubText = (TextView) view.findViewById(R.id.layout_toast_sub_text);            if (state) {                mImg.setImageResource(R.drawable.img_success);            } else {                mImg.setImageResource(R.drawable.img_failed);            }            mText.setText(text);            if (subTextVisible) {                mSubText.setVisibility(View.VISIBLE);                mSubText.setText(subText);            } else {                mSubText.setVisibility(View.GONE);            }            customToast.setView(view);            customToast.setGravity(Gravity.CENTER, 0, 0);            customToast.setDuration(Toast.LENGTH_SHORT);            customToast.show();            return customToast;        }    }}

使用方法:

 new CustomToast.Builder(ConnectTVHelp.this)                .setState(false)                .setText(R.string.scan_failed)                .setSubText(true, R.string.scan_failed_desc)                .create();

这篇写的感觉不太成熟欢迎指正。

0 0
原创粉丝点击