我想創建一個自定義的 Toast view:
public class SMSToast extends Activity {
public void showToast(Context context, String message) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_sms, (ViewGroup)findViewById(R.id.toast_sms_root));
TextView text = (TextView) layout.findViewById(R.id.toast_sms_text);
text.setText(message);
Toast toast = new Toast(context);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
}
}
在 onReceive 方法的 BroadcastReceiver 中設置:
SMSToast toast = new SMSToast();
toast.showToast(context,
"Received SMS from: " + msg_from +
" Content: " + msgBody);
但是當代碼被調用時,沒有顯示信息。如果我使用 Toast,text顯示。
哪裡出錯呢?
SMSToast對象繼承的是Activity,應該繼承Toast
showToast裡面LayoutInflater獲取:
LayoutInflater inflate = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
應該是這樣了