Android消息提示机制

在某些情况下,可能需要你去通知用户发生在你应用中的事件,其中一些事件需要用户响应,有的则不需要。Android框架通过消息机制很好的完成上述的需求。
比如:
- 当一个事件完成时(比如保存文件),需要显示一个简短的消息来确认保存成功
- 假如应用正在后台运行,且需要用户注意,那么该应用需要创建一个通知以方便用户做出响应
- 假如用户要操作一个危险的操作,则应该创建一个对话框通知,再一次确认用户的操作
常见的消息提示方式有:
- Logcat(日志猫)
- Toast(瞬时提示)
- Dialog(对话框)
-Notification(通知)
这篇博客主要讲解 前面两种,后面两种将在以后会继续记录笔记

Logcat日志猫:
Logcat日志猫主要是调试的时候在IDE中查看相关信息。列如网络请求中需要打印确认是否请求到数据;还有在开发的过程中碰到什么异常或错误都可以打印在logcat中。
* logcat的级别 :v、d、i、w、e 级别由低往高
- verbose :混淆的 ,所有信息都可以输出,级别最低
- debug :调试级别
- info :信息级别
- warning:警告级别
- error :错误级别
* 添加过滤器 按照Tag进行过滤
* System.out.println()与Log输出之间的区别
- System.out.println()输出的信息 等级是info级别,标记tag:System.out
- System.out.print()输出信息 需要System.out.flush()刷缓存输出
-
Toast瞬时提示
Toast通知是一种浮现在屏幕上层的消息提醒,它只填充消息所需要的空间,而当前正在运行的活动仍然保持其自身的可见性和交互性。这种通知自动淡入淡出且不接受交互事件。
系统自带toast:Toast.makeText(context, type, time);
. 通过代码自定义Toast

  • 代码实现
 // 通过代码的形式自定义Toast
    public void diyToast1(View v) {
        // 声明一个Toast对象
        Toast toast = new Toast(context);
        // 构建布局对象
        LinearLayout layout = new LinearLayout(context);
        ViewGroup.LayoutParams params = new LayoutParams(
                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        // 设置布局参数
        layout.setLayoutParams(params);
        // 设置线性布局的方向
        layout.setOrientation(LinearLayout.HORIZONTAL);
        layout.setBackgroundColor(Color.CYAN);
        // 创建图像对象
        ImageView image = new ImageView(context);
        image.setImageResource(R.drawable.emoji_044);
        // 向布局对象中添加图片视图控件
        layout.addView(image);
        // 构建文本视图控件
        TextView message = new TextView(context);
        message.setText("这是自定义Toast!");
        message.setTextColor(Color.BLUE);
        layout.addView(message);
        // 在toast对象中设置View
        toast.setView(layout);
        // 设置持续时间
        toast.setDuration(Toast.LENGTH_LONG);
        // Gravity :显示的位置 ,xOffset:x方向偏移量 yOffset:y方向偏移量
        toast.setGravity(Gravity.LEFT, 0, 0);
        toast.show();}

*通过XML自定义Toast
LayoutInflate :把xml布局文件实例化为View对象
layoutInflater把XML布局文件实列化为view对象
Inflater方法:
好比打气筒的形式把布局文件实列化为view对象,返回的也是view类型的对象
1.Inflater(resource,root)

  • resource:要实列化的xml布局文件的资源id。
  • root:根节点,表示是否要把实列化的view添加到父控件中。
  • 返回值:加入root不为空,表示有父控件,则返回父控件对象,假如root为空则返回的是实列化后的view对象(该对象为布局的顶层节点对象)

    2.Inflater(resource,root,attachToRoot)
    -resource:要实列化的xml布局文件的资源ID
    -root:根节点,父控件
    -attachToRoot:布尔值
    -为真的情况,与Inflater(resource,root)相同
    -为假的情况下,表示有父控件,但是该父控件不能够通过addView的方式添加子控件,它是通过adapter来装配子控件的,有该父控件,只用于影响子控件的布局参数。

     // 通过xml文件自定义吐司
    public void diyToast2(View v) {
        // 定义Toast对象
        Toast toast = new Toast(context);
        // 布局填充器
        /**
         * 把布局xml文件进行实例化为对象,把布局的内容填充到View对象中 resource: 布局资源 root:父控件或者根节点
         * inflate:打氣筒的形式把布局资源填充到View对象中,View对象具有层次性
         */
        View view = LayoutInflater.from(context).inflate(R.layout.diy, null);
        toast.setView(view);
        // 设置持续时间
        toast.setDuration(Toast.LENGTH_LONG);
        // Gravity :显示的位置 ,xOffset:偏移量 yOffset:偏移量
        toast.setGravity(Gravity.LEFT, 0, 0);
        toast.show();
    }

博客纯属个人爱好,如果又不对的地方,欢迎指出。谢谢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值