Android:你如何让Android吐司停留很长时间

时间:2014-03-13 14:38:59

标签: android toast

我有一项活动,其中我计划使用祝酒信息获取信息。吐司包含一个大文本,我使用它,它不工作。

Toast.makeText
(getApplicationContext(), "My Text Goes Here", 20000).show();

4 个答案:

答案 0 :(得分:5)

那是不可能的。 makeText方法中的最后一个参数实际上需要两个常量之一:

Toast.LENGTH_LONG

Toast.LENGTH_SHORT

除了选择其中一个之外,你不能影响吐司的显示时间。如果您有一个长文本,请考虑使用如下对话框:

AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setTitle("Title");
builder.setMessage("Long Text...");
builder.setNeutralButton("Ok",
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
AlertDialog alert = builder.create();
alert.show();

当然你不应该像我在这个例子中那样硬编码字符串。考虑将它们放在字符串资源中。

答案 1 :(得分:0)

您无法显示Toast超过Toast.LENGTH_LONG定义的默认时间。

由于您希望显示大型邮件,因此您应使用Dialog代替Taost

您可以使用Dialog完成此操作,如下所示......

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getApplicationContext());
dialogBuilder.setTitle("Mesage");
dialogBuilder.setText("Your message...");
dialogBuilder.setPositiveButton("OK",
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });

AlertDialog dialog = builder.create();
dialog.show();

答案 2 :(得分:0)

LENGTH_SHORTLENGTH_LONG的值为0和1.它们被视为标志而不是实际持续时间,因此无法将持续时间设置为除这些值之外的任何值。

答案 3 :(得分:0)

忘记Toast并转到Dialog

我个人更喜欢创建一个通用方法(在一个单独的Java对象中,根据需要调用)来创建Dialog,以避免代码重复。

public void showAlert(int title, int message, Activity reportActivity) {
        // Create an alert dialog box
        AlertDialog.Builder builder = new AlertDialog.Builder(reportActivity);
        // Set alert title
        builder.setTitle(title);

        // Set the value for the positive reaction from the user
        // You can also set a listener to call when it is pressed
        builder.setPositiveButton(R.string.ok, null);

        // The message
        builder.setMessage(message);

        // Create the alert dialog and display it
        AlertDialog theAlertDialog = builder.create();
        theAlertDialog.show();
    }