`
fackyou200
  • 浏览: 301988 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

关于android中Toast重复显示的解决方案

 
阅读更多
 在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,误操作多次时,只使用Toast会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。所以,这个时候,我们可以做一个Factory来维护一个Toast的引用,并用Context来唯一标识这个Toast,当Context改变时,Toast会重新创建,否则,返回已创建的Toast,在返回已创建的Toast之前,调用cancel方法,这样,会最少限度的更改已存在的代码。

 代码附在下面

public class TispToastFactory {

private static Context context = null;

private static Toast toast = null;

/**

* @param context 使用时的上下文

* @param hint 在提示框中需要显示的文本

* @return 返回一个不会重复显示的toast

* */

public static Toast getToast(Context context,String hint){

if(TispToastFactory.context == context){

toast.cancel();

toast.setText(hint);

System.out.println("没有新创建");

}else{

System.out.println("创建了一个新的toast");

TispToastFactory.context = context;

toast = Toast.makeText(context,hint,Toast.LENGTH_SHORT);

}

return toast;

}

}
 

 


分享到:
评论
1 楼 gjhappyyy 2012-09-17  
你这样只能显示一次toast。继续按就再也不显示了。如果想第一次toast显示消失,再按在显示怎么处理???

相关推荐

Global site tag (gtag.js) - Google Analytics