Toast創建的方法有兩種:
第一種通過使用靜態類的方法創建一個Toast對像,創建方法如下:
Toast toast=Toast.makeTest(this,“ 第一個使用的Toast”,1);
toast.show();
上面代碼等於如下:
Toast.makeTest(this,“ 第一個使用的Toast”,1).show;
makeTest(Context context,String stringm,int time)方法第一個參數是調用這個方法的上下文對象,第二個參數是用戶自己設置的顯示文字,第三個參數是這個Toast顯示的時間,需注意的是是以秒分單位的。
這兩種寫法的效果都是一樣的,可以根據自己的習慣寫法來選擇.
第二種方法是通過創建Toast對後,使用Toast對象進行了一系統的設置後,再使用show()方法進行顯示需要注要的是這種方法的創建Toest對象不是通過makeText()方法來返回一個Toast對象,而是通過new 這個關鍵字進行生成的。
代碼如下:
Toast toast = new Toast(this); //this指的是上下文對象
toast.setText(“第一個使用的Toast”);
toast.show();
上面的代碼當執行到toast.setText(“第一個使用的Toast”); 這句的時候,會拋異常,問題出在setText()這個方法裏,如果只是顯示文字消息的,建議使用第一種方法。Toast類雖然有setText()的方法,但這個方法是不能使用在new一個Toast對象之後再使這setText()方法進行設置
如果想在Toast上顯示一些其它的內容,可以使用Toast類的setView()方法設置一個View對象,在設置setView之前可以在View上進行一系統的設置,代碼如下:
View view = getLayoutInflater().inflate(R.layout.toast, null);
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText("第一個使用的Toast");
Toast toast = new Toast(this);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(view);
toast.show();
可能會有人問,爲什麼new一個Toast對象,使用setText()方法會出錯,原因是在調用setText()方法時View的對象還沒有創建出來,所以會拋出異常,所以使用new這個方法的時候,記得創建一個View對象並在上面進行一系列的設置後,通過setView()設置後,再使用Toast的show()方法進行顯示。
makeText()方法跟上面的代碼類似,因爲兩者都是設置了一個View對象,因爲Toast方法實際就是通過一個View方法來顯示信息的