Android Toast的幾種使用方式及注意事項
Toast是Android中常用的組件,下面介紹下Toast使用的幾種方式和注意事項。
Toast的使用方式簡單來說有下面五種:
1、默認的顯示
// 第一個參數(shù):當前的上下文環(huán)境。可用getApplicationContext()或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線程當中使用,在非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開發(fā)之關(guān)閉所有的activity的方法
本篇文章主要介紹了android開發(fā)之關(guān)閉所有的activity的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12android 獲取手機GSM/CDMA信號信息,并獲得基站信息的方法
下面小編就為大家?guī)硪黄猘ndroid 獲取手機GSM/CDMA信號信息,并獲得基站信息的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Android IPC機制ACtivity綁定Service通信代碼實例
這篇文章主要介紹了Android IPC機制ACtivity綁定Service通信代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09