Android--通知之Toast


前言

  這篇博客講解一下Android下的一個簡單信息提示的方式:Toast。如果一直看我的博客,會發現在之前的Demo中,一直有用到Toast去提示消息,在這篇博客中就專門講它。Toast提供一個浮動的簡單的小顯示塊,並且不影響任何其他操作,僅僅用於提示信息,並且會在超時后,自動消失。因為它的及時性已經自動消失的特性,不適合提示一些重要的信息,如果有重要的信息,可以使用Notification提示用,Notification之后會介紹。在本片博客中將講解Toast的常規使用,以及特殊的屬性、方法的使用,並且會說明如何使用Toast創建一個自定義的內容,並且最后會對以上講解的內容給出代碼示例。

Toast

  Toast是為了給當前視圖顯示一個浮動的顯示塊,它永遠不會獲得焦點。一般用於提示一些不那么引人注目,但是又希望用戶看見的消息,無需用戶自己維護它的消失。

  如果只是提示簡單的信息,使用Android為Toast提供的兩個靜態的方法最為方便,它們會返回一個Toast對象,如果需要顯示,只需要調用show()方法顯示即可,下面是這兩個方法的簽名:

  • static Toast makeText(Context context,int resId,int duration).
  • static Toast makeText(Context context,CharSequence text,int duration)

  上面兩個方法,參數大致相同,一個上下文對象Context,一個顯示的消息來源,一個設置持續時間。消息來源可以指定String資源,使用<string.../>標簽在XML資源文件中定義,還可以指定一個字符串用於消息展示。最后的duration參數設置了Toast的持續時間,一般使用Toast自帶的兩個整形的常量:LENGTH_LONG(1,時間稍長)、LENGTH_SHORT(0,時間稍短),針對不同的使用場景,選擇不用的持續時間。

  Toast消息的默認顯示位置在屏幕的中間偏下,Android也為開發者提供了方法設置Toast消息的位置,使用setGravity(int gravity, int xOffset, int yOffset)方法即可設置,它有三個參數,gravity設置一個重力方向,另外兩個設置水平和垂直方向的偏移量。

  示例:使用Toast提示一個簡單的消息,顯示在屏幕中間。

1 btnToast1.setOnClickListener(new View.OnClickListener() {            
2             @Override
3             public void onClick(View v) {
4                 // TODO Auto-generated method stub
5                 Toast toast=Toast.makeText(MainActivity.this,"Toast提示消息",Toast.LENGTH_SHORT    );
6                 toast.setGravity(Gravity.CENTER, 0, 0);
7                 toast.show();
8             }
9         });

  顯示效果:

 

自定義消息

  無論是從美觀的角度、還是用戶視覺體驗的角度,很多時候都不僅僅需要顯示一簡單的文本信息。如果需要顯示用戶自定義的消息,那么就不能使用上面介紹的靜態方法來得到一個Toast對象,而是需要使用Toast的構造方法進行初始化,然后對相應的屬性進行設置。一般對於自定義布局的顯示,會使用XML定義好一個布局文件,這樣清晰明朗。

  步驟如下:

  1. 使用LayoutInflater.from(Context).inflate(int , ViewGroup)方法動態獲得需要顯示的View。
  2. 對View中的控件進行必要操作。
  3. 使用構造函數初始化Toast。
  4. 使用Toast.setView(View)進行設置。
  5. 最后使用show()方法展示Toast消息。

  下面通過一個示例展示自定義布局在Toast中的顯示:

  Toast消息的布局代碼:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3               android:id="@+id/toast_layout_root"
 4               android:orientation="horizontal"
 5               android:layout_width="fill_parent"
 6               android:layout_height="fill_parent"
 7               android:padding="8dp"
 8               android:background="#DAAA"
 9               >
10     <ImageView android:src="@drawable/ic_launcher"
11                android:layout_width="wrap_content"
12                android:layout_height="wrap_content"
13                android:layout_marginRight="8dp"
14                />
15     <TextView android:id="@+id/text"
16               android:layout_width="wrap_content"
17               android:layout_height="wrap_content"
18               android:textColor="#FFF"
19               />
20 </LinearLayout>

  Toast消息的顯示代碼:

 1 btnCustomToast.setOnClickListener(new View.OnClickListener() {
 2             
 3             @Override
 4             public void onClick(View v) {
 5                 View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.toast_layout,null    );
 6                 TextView tv=(TextView)view.findViewById(R.id.text);
 7                 tv.setText("自定義提示Toast");
 8                 Toast toast=new Toast(MainActivity.this);
 9                 toast.setView(view);
10                 toast.show();
11                 
12             }
13         });

 效果展示:

  源碼下載

總結

  以上就講解了Toast的使用,在Android中,Toast提示消息的方式會經常被用到,所以掌握它是有必要的,之后會介紹另外一種消息提示方式,Notification。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM