Android Studio 之 Toast

•参考资料

  [1]:Android Studio 在活动中使用Toast

  [2]:AndroidStudio自定义Toast及其用法

•简介

  Toast 是 Android 系统提供的一种非常好的提醒方式;

  在程序中可以使用它将一些短小的信息通知给用户;

  这些信息会在一段时间内自动消失,并且不会占用任何屏幕空间

•Toast.makeText()函数原型

  Toast.makeText(参数1,参数2,参数3); 

  • 参数1是 Context,也就是 Toast 要求的上下文,由于活动本身就是一个Context对象,因此直接传入XXActivity.this 即可,或者填入 getApplicationContext()
  • 参数2是 Toast 显示的文本内容
  • 参数3是 Toast 显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG

•自定义 Toast

  效果展示图:

    

  实现方法:

    首先,在 layout 文件夹下自定义一个 .xml 文件,并命名为 toast.xml;

    在里面放入如下代码:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:layout_gravity="center">
 6
 7     <com.example.table.ImageViewPlus
 8         android:id="@+id/toast_iv_1"
 9         android:layout_centerHorizontal="true"
10         android:layout_width="100dp"
11         android:layout_height="100dp"
12         android:scaleType="centerInside" />
13     <TextView
14         android:layout_below="@id/toast_iv_1"
15         android:layout_centerHorizontal="true"
16         android:id="@+id/toast_tv_1"
17         android:layout_width="wrap_content"
18         android:layout_height="wrap_content"
19         android:textSize="26sp"
20         android:textColor="#D32F2F"
21         android:gravity="center"
22         />
23
24 </RelativeLayout>

    其中的 <ImageViewPlus> 控件是我之前自定义的圆形 ImageView,详情见我这篇博客

    然后,自定义一个 Empty Activity 并命名为 DefineToastActivity,在其对应的 .xml 中添加如下代码:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     tools:context=".DefineToastActivity"
 8     android:background="#1976D2">
 9
10     <LinearLayout
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:layout_alignParentBottom="true"
14         android:layout_centerHorizontal="true"
15         android:orientation="horizontal">
16
17         <Button
18             android:id="@+id/btn_1"
19             android:layout_width="wrap_content"
20             android:layout_height="wrap_content"
21             android:text="Cat" />
22         <Button
23             android:id="@+id/btn_2"
24             android:layout_width="wrap_content"
25             android:layout_height="wrap_content"
26             android:text="Dog" />
27     </LinearLayout>
28 </RelativeLayout>

activity_define_toast.xml

    并在 DefineToastActivity.java 中设置点击事件的代码,并设置  Toast;

 1 package com.example.table;
 2
 3 import android.os.Bundle;
 4 import android.view.Gravity;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.ImageView;
 9 import android.widget.TextView;
10 import android.widget.Toast;
11
12 import androidx.appcompat.app.AppCompatActivity;
13
14 public class DefineToastActivity extends AppCompatActivity {
15
16     private Button Btn1;
17     private Button Btn2;
18     private Toast toast;
19     private LayoutInflater inflater;
20     private View view;
21     private ImageView Iv;
22     private TextView Tv;
23
24     @Override
25     protected void onCreate(Bundle savedInstanceState) {
26         super.onCreate(savedInstanceState);
27         setContentView(R.layout.activity_define_toast);
28
29         toast = new Toast(getApplicationContext());
30         inflater = LayoutInflater.from(DefineToastActivity.this);
31         view = inflater.inflate(R.layout.toast,null);
32         Iv = view.findViewById(R.id.toast_iv_1);//找到 toast.xml 中 ImageView 控件的 id
33         Tv = view.findViewById(R.id.toast_tv_1);//找到 toast.xml 中 TextView 控件的 id
34
35         Btn1 = findViewById(R.id.btn_1);
36         Btn2 = findViewById(R.id.btn_2);
37
38         Btn1.setOnClickListener(new View.OnClickListener(){
39
40             @Override
41             public void onClick(View v){
42                 Iv.setImageResource(R.mipmap.cat);
43                 Tv.setText("喵喵喵");
44                 toast.setView(view);
45                 toast.setDuration(Toast.LENGTH_LONG);
46                 toast.setGravity(Gravity.CENTER,0,0);//将该toast居中显示
47                 toast.show();
48             }
49         });
50         Btn2.setOnClickListener(new View.OnClickListener(){
51
52             public void onClick(View v){
53                 Iv.setImageResource(R.mipmap.dot);
54                 Tv.setText("汪汪汪");
55                 toast.setView(view);
56                 toast.setDuration(Toast.LENGTH_LONG);
57                 toast.setGravity(Gravity.CENTER,0,0);//将该toast居中显示
58                 toast.show();
59             }
60         });
61     }
62 }

DefineToastActivity.java

原文地址:https://www.cnblogs.com/hyacinthLJP/p/12389334.html

时间: 2024-08-30 17:28:28

Android Studio 之 Toast的相关文章

Android Studio 使用Toast

Toast 是Android系统中体重的一种非常好的提醒方式 在程序中可以将很小的一段消息提醒给用户 在一段时间后自动消失,不会占用如何屏幕空间 Button button1=(Button) findViewById(R.id.button_1);//获取布局的button 按钮ID 对他添加单击事件 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T

[转]Android Studio SQLite Database Example

本文转自:http://instinctcoder.com/android-studio-sqlite-database-example/ BY TAN WOON HOW · PUBLISHED APRIL 9, 2014 · UPDATED JUNE 23, 2016 SQLiteDatabase is a class that allowed us to perform Create, Retrieve , Update, and Delete data (CRUD) operation.

Android Studio各种快捷功能及好用的插件

转载:http://www.jianshu.com/p/c439605a4364 概述 现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道. Postfix completion Postfix completion 是IntelliJ IDEA很早就有的功能,该功能基于已经输入的表达式和你添加的后缀来实现另一个你想要的表达式.例如在布尔表达式之后加上后缀if

Android Studio 快速开发

概述 现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道. Postfix completion 介绍 Postfix completion 是IntelliJ IDEA很早就有的功能,该功能基于已经输入的表达式和你添加的后缀来实现另一个你想要的表达式.例如在布尔表达式之后加上后缀if就是if语句 . 常用后缀介绍 下面介绍一下个人工作中觉得比较常用的几个后缀

在Android Studio中使用Lambda表达式

Lambda表达式是Java 8的一个新特性,可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂.Lambda表达式同时还提升了对集合的迭代.遍历.过滤数据的操作.那么在Android Studio中如何使用lambda表达式呢? 项目使用的jdk要为jdk 8或更高版本 修改build.gradle文件,enable jack和设置sourceCompatibility,targetCompatibility为jdk 8 defaultConfig { ... jackOpt

Android Studio之高德地图实现定位和3D地图显示

在应用开发中,地图开发是经常需要使用的"组件",国内比较出名的是就是百度地图和高德地图. 此博客讲的是高德地图实现定位和3D地图显示,并标注相应位置,话不多说,先看看效果,在上代码. 效果如图: 首先注册高德成为开发者(打开高德地图,点击底部的开发者平台),创建应用,按照要求填写相应信息,如下图: 途中包含了发布版的SHA1安全码和测试版SHA1安全码,两者的值可以看  博客 :Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SH

Android Studio精彩案例(七)《ToolBar使用详解&lt;一&gt;》

转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 本文参考博客:http://blog.csdn.net/h_zhang/article/details/51232773 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2006.html Android5.x以后谷歌大力推崇Material Design设计,有意统一之前Android style风格乱象的情况.上一篇博客我们学习了ActionBar

如何解决android studio 运行时中文乱码的问题

相信很多朋友都会遇到android studio 在MAC OS中运行的时候中文乱码.而在代码编辑的时候正常.经过几天的不断寻找解决办法,终于解决了 比如: Toast.makeText(MainActivity.this,"我爱你", Toast.LENGTH_LONG).show(); 运行的时候在模拟器里就是乱码. 解决办法网上很多,但是都不能解决运行时乱码的问题.所以这个问题苦恼了几天. 我们在工程里的build.grandle 文件中添加一段代码即可 tasks.withTy

Android Studio 基础

1.背景 Android Studio 自从 2013年谷歌I/O大会推出到现在将近2年了,也更新到了1.0的稳定版本,此时不入手更待何时. Android Studio VS Eclipse (1)Eclipse没有官方支持的Android5.0的sdk更新 毕竟AS才是亲儿子啊 (2)强大的UI编辑功能 可以实时查看修改布局代码后产生的变化 可以便捷的查看布局文件中的资源文件 (3)牛逼的代码提示 每次用Eclipse都要按Alt+/ 很蛋疼有木有 (4)贴心的提示工具 可以实时地捕获性能.