2014-02-19 23 views
1

我想知道如何显示toast programmaticaly。当我从数据库中读取数据时,即使文本的长度较小或较大,我也只能在短时间内看到敬酒。但我希望看到烤面包可以稍微长一点(至少3-5秒)。如何让吐司长时间可见?

+0

这可以帮助ü。 http://stackoverflow.com/questions/2220560/can-an-android-toast-be-longer-than-toast-length-long –

回答

1

像这样的东西可能会满足您的需求:

String stringFromDatabase = "your string"; 

if (stringFromDatabase.length()<200){ 
    Toast.make(context, stringFromDatabase, Toast.LENGTH_SHORT).show(); 
}else{ 
    Toast.make(context, stringFromDatabase, Toast.LENGTH_LONG).show(); 
} 

这将显示你的面包了或长或短的时间,这取决于您的字符串的长度。

+0

它看起来不错,即使我的字符串比较大,它会显示为只是稍长一点,但我必须使其可见,直到用户必须阅读它。注意:我不能说文本的长度 –

+0

如果你想更好地控制文本呈现给用户的时间,那么它不是你需要的Toast。看看Vigneshearan.m链接的问题。 – 2Dee

0

如果您想要更长时间显示消息,则必须实施自定义Toast。 LENGTH_SHORT和LENGTH_LONG的值是0和1.它们没有指定时间量。

1

Toast显示如下。

Toast.makeText(getApplicationContext(), textToDisplay, 
    Toast.LENGTH_LONG).show(); 

参数Toast.LENGTH_LONG告诉它应该显示很长时间。可能需要将其更改为LENGTH_LONG。

0

不幸的是,最长的烤面包可以显示的时间是3.5秒(LENGTH_LONG,而LENGTH_SHORT是2秒)。

如果你想有一个较短的面包,你可以暂停一段时间后取消它 - 例如:

final Toast toast = Toast.makeText(getApplicationContext(), "your string", Toast.LENGTH_SHORT); 
    toast.show(); 
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      toast.cancel(); 
     } 
    }, 500); 

将显示500毫秒。

对于一个较长的消息需要显示一些祝酒一前一后,或选择不同的方法来传递信息