Android中提供一種簡(jiǎn)單的Toast消息提示框機(jī)制够庙,可以在用戶點(diǎn)擊了某些按鈕后,提示用戶一些信息践盼,提示的信息不能被用戶點(diǎn)擊思瘟,Toast的提示信息根據(jù)用戶設(shè)置的顯示時(shí)間后自動(dòng)消失环础。Toast的提示信息可以在調(diào)試程序的時(shí)候方便的顯示某些想顯示的東西,或者給用戶提供友好的界面顯示效果。
有兩種方式去創(chuàng)建并且顯示Toast:
Toast.makeText(Context context, int resId, int duration)
Toast.makeText(Context context, CharSequence text, int duration)
Context為上下文剩拢,通常為當(dāng)前activity;resId是string字符串的id线得,CharSequence為你要顯示的字符串,duration為顯示的時(shí)間徐伐,可以選擇Toast.LENGTH_SHORT或Toast.LENGTH_LONG,也可自定義時(shí)間贯钩。
使用方法:
Toast.makeText(this, "this is string", Toast.LENGTH_SHORT).show();
自己創(chuàng)建Toast,并且設(shè)置視圖办素,即自定義
如:
Toast toast = new Toast(this);
// 定義一個(gè)ImageView
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.ic_launcher);
// 定義一個(gè)Layout角雷,這里是Layout
LinearLayout Layout = new LinearLayout(this);
Layout.setOrientation(LinearLayout.HORIZONTAL);
// 將ImageView放到Layout中
Layout.addView(imageView);
// 設(shè)置View
toast.setView(Layout);
//設(shè)置顯示時(shí)間
toast.setDuration(20);
toast.show();
通過上面的代碼就可以自己定義一個(gè)Toast了,我們還在其中顯示了圖片性穿。
如何設(shè)置Toast顯示的位置
方法一:
setGravity(int gravity, int xOffset, int yOffset) 三個(gè)參數(shù)分別表示(起點(diǎn)位置,水平向右位移,垂直向下位移)
方法二:
setMargin(float horizontalMargin, float verticalMargin)
以橫向和縱向的百分比設(shè)置顯示位置勺三,參數(shù)均為float類型(水平位移正右負(fù)左,豎直位移正上負(fù)下)
注意事項(xiàng):
Toast中有一個(gè)public方法setText()需曾,可以給toast設(shè)置resid或者string吗坚,該方式盡可以在我們的第一種方法中使用,第二種自定義toast的方式是不可以使用的呆万,使用的話會(huì)拋出異常商源。
原因是使用第一種方式創(chuàng)建,Toast會(huì)自己創(chuàng)建一個(gè)view桑嘶,即textview炊汹,而我們使用這個(gè)setText實(shí)際是向這個(gè)TextView設(shè)置內(nèi)容,而自定義的View不會(huì)有這個(gè)控件逃顶,因此會(huì)報(bào)錯(cuò)讨便。
原文地址:http://blog.isming.me/blog/2014/03/22/toast-use/ ,轉(zhuǎn)載請(qǐng)注明出處以政。