Android Toast的幾種使用方式及注意事項
Toast是Android中常用的組件,下面介紹下Toast使用的幾種方式和注意事項。
Toast的使用方式簡單來說有下面五種:
1、默認的顯示
// 第一個參數(shù):當(dāng)前的上下文環(huán)境??捎胓etApplicationContext()或Activity的context // 第二個參數(shù):要顯示的字符串。也可是R.string中字符串ID // 第三個參數(shù):顯示的時間長短。Toast默認的有兩個LENGTH_LONG(長)和LENGTH_SHORT(短),也可以使用毫秒如2000ms Toast toast=Toast.makeText(mContext, "默認的Toast", Toast.LENGTH_SHORT); //顯示toast信息 toast.show();
2、自定義位置顯示(值改變位置)
Toast toast=Toast.makeText(mContext, "自定義顯示位置的Toast", Toast.LENGTH_SHORT); //第一個參數(shù):設(shè)置toast在屏幕中顯示的位置。這里設(shè)置是居中靠頂 //第二個參數(shù):相對于第一個參數(shù)設(shè)置toast位置的橫向X軸的偏移量,正數(shù)向右偏移,負數(shù)向左偏移 //第三個參數(shù):相對于第一個參數(shù)設(shè)置toast位置的縱向y軸的偏移量,正數(shù)向下偏移,負數(shù)向上偏移 //如果你設(shè)置的偏移量超過了屏幕的范圍,toast將在屏幕內(nèi)靠近超出的那個邊界顯示 toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100); //屏幕居中顯示,X軸和Y軸偏移量都是0 //toast.setGravity(Gravity.CENTER, 0, 0); toast.show();
3、帶圖片顯示(能夠顯示一個圖標)
Toast toast=Toast.makeText(mContext, "顯示帶圖片的toast", 2000); toast.setGravity(Gravity.CENTER, 0, 0); //創(chuàng)建圖片視圖對象 ImageView imageView= new ImageView(mContext); //設(shè)置圖片 imageView.setImageResource(R.drawable.image); //獲得toast的布局 LinearLayout toastView = (LinearLayout) toast.getView(); //設(shè)置此布局為橫向的 toastView.setOrientation(LinearLayout.HORIZONTAL); //將ImageView在加入到此布局中的第一個位置 toastView.addView(imageView, 0); toast.show();
4、完全自定義顯示
LayoutInflater inflater = getLayoutInflater();
//通過制定XML文件及布局ID來填充一個視圖對象
View layout = inflater.inflate(R.layout.test,(ViewGroup)findViewById(R.id.toast));
ImageView image = (ImageView) layout.findViewById(R.id.image);
//設(shè)置布局中圖片視圖中圖片
image.setImageResource(R.drawable.toast_image);
TextView title = (TextView) layout.findViewById(R.id.title);
//設(shè)置標題
title.setText("標題");
TextView text = (TextView) layout.findViewById(R.id.content);
//設(shè)置內(nèi)容
text.setText("自定義Toast");
Toast toast= new Toast(mContext);
toast.setGravity(Gravity.CENTER , 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();5、在其他線程中調(diào)用顯示
Toast只能運行在主UI線程,所以在線程中使用時必須結(jié)合Handler,通過發(fā)消息的方式最終在主線程顯示Toast
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
int what=msg.what;
switch (what) {
case 1:
showToast();
break;
}
};
public void showToast(){
Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他線程中顯示", Toast.LENGTH_SHORT);
toast.show();
}
Runnable runnable = new Runnable(){
@Override
public void run() {
handler.sendEmptyMessage(1);
}
}
Toast使用注意事項:
1、Toast只能在UI線程當(dāng)中使用,在非UI線程使用會拋異常;
2、使用Toast時最好定義一個全局的 Toast 對象,這樣可以避免連續(xù)顯示
Toast 時不能取消上一次 Toast 消息的情況(如果你有連續(xù)彈出 Toast 的情況,避免
使用 Toast.makeText)。
取消toast的方法為toast.cancel();
到此這篇關(guān)于Android Toast的幾種使用方式的文章就介紹到這了,更多相關(guān)Android Toast的幾種使用方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android中TabLayout+ViewPager 簡單實現(xiàn)app底部Tab導(dǎo)航欄
TabLayout 是Android com.android.support:design庫的一個控件。本文主要給大家介紹TabLayout+ViewPager 簡單實現(xiàn)app底部Tab布局,需要的的朋友參考下2017-02-02
Android 6.0動態(tài)權(quán)限及跳轉(zhuǎn)GPS設(shè)置界面的方法
今天小編就為大家分享一篇Android 6.0動態(tài)權(quán)限及跳轉(zhuǎn)GPS設(shè)置界面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Android Activity 與Service進行數(shù)據(jù)交互詳解
這篇文章主要介紹了Android Activity 與Service進行數(shù)據(jù)交互的相關(guān)資料,在開發(fā)Android App的時候經(jīng)常會使用這樣的功能,需要的朋友可以參考下2016-10-10
android使用PullToRefresh實現(xiàn)下拉刷新和上拉加載
本篇文章主要介紹了android使用PullToRefresh實現(xiàn)下拉刷新和上拉加載,具有一定的參考價值,有興趣的可以了解一下。2016-12-12

