我有一项活动,其中我计划使用祝酒信息获取信息。吐司包含一个大文本,我使用它,它不工作。
Toast.makeText
(getApplicationContext(), "My Text Goes Here", 20000).show();
答案 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_SHORT
和LENGTH_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();
}