如何将吐司替换为文本视图



我正在开发一个GSM应用程序。来自服务器的传入消息显示为 Toast。如何将以下代码中的 toast 替换为文本视图?

public class GcmMessageHandler extends IntentService {
     String mes;
     private Handler handler;
    public GcmMessageHandler() {
        super("GcmMessageHandler");
    }
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        handler = new Handler();
    }
    @Override
    protected void onHandleIntent(Intent intent) {
        Bundle extras = intent.getExtras();
        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
        // The getMessageType() intent parameter must be the intent you received
        // in your BroadcastReceiver.
        String messageType = gcm.getMessageType(intent);
       mes = extras.getString("title");
       showToast();
       Log.i("GCM", "Received : (" +messageType+")  "+extras.getString("title"));
        GcmBroadcastReceiver.completeWakefulIntent(intent);
    }
    public void showToast(){
        handler.post(new Runnable() {
            public void run() {
                Toast.makeText(getApplicationContext(),mes , Toast.LENGTH_LONG).show();
            }
         });
    }
}

您可以将 TextView 设置为 Toasts 视图,如下所示:

    Toast toast = Toast.makeText(context,message, Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, toast.getXOffset() / 2, toast.getYOffset() / 2);
    TextView textView = new TextView(context);
    textView.setBackgroundColor(Color.DKGRAY);
    textView.setTextColor(Color.WHITE);
    textView.setTextSize(30);
    Typeface typeface = Typeface.create("serif", Typeface.BOLD);
    textView.setTypeface(typeface);
    textView.setPadding(10, 10, 10, 10);
    textView.setText(message);
    toast.setView(textView);
    toast.show();

最新更新