Android在非UI线程中显示Toast



public class MyToast{

	/**UI线程中使用,千万别在非UI中使用*/  
	public static void show(Context context, CharSequence text, int duration) {
		Toast toast = Toast.makeText(context, text, duration);
		toast.setGravity(Gravity.CENTER,0,0);
		toast.show();
    }
	
	/** 
	* 在非UI线程中,这个方法可以将Toast显示在UI线程 
	* 原理,追加toast在消息队列中 
	* 千万别在UI线程中使用 
	* */  
	public static void showOnUIThreadx(final Context context,final CharSequence text,final  int duration) {
	    
		Handler handler = new Handler(Looper.getMainLooper());
	    handler.post(new Runnable() {
	        @Override
	        public void run() {
	        	Toast toast = Toast.makeText(context, text, duration);
	    		toast.setGravity(Gravity.CENTER,0,0);
	    		toast.show();
	        }
	    });
	    
    }
	
	/** 
	* 在非UI线程中,这个方法可以将Toast显示在UI线程 
	* 原理,追加toast在消息队列中 
	* 千万别在UI线程中使用 
	* */  
	public static void showOnUIThread2(final Context context,final CharSequence text,final  int duration) {
	    Looper.prepare();
    	Toast toast = Toast.makeText(context, text, duration);
		toast.setGravity(Gravity.CENTER,0,0);
		toast.show();
		Looper.loop();
    }
	
    
}



参考来自:http://blog.csdn.net/xiaanming/article/details/8904645





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Toast是一种轻量级的提示框,用于在屏幕上显示简短的消息。以下是AndroidToast的用法: 1. 在布局文件定义Toast的布局样式,例如: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#FFFFFF" android:padding="8dp"> <ImageView android:id="@+id/toast_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/toast_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello world!"/> </LinearLayout> ``` 2. 在Java代码创建Toast对象,并设置其显示的位置和时长等属性,例如: ```java LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, null); ImageView icon = layout.findViewById(R.id.toast_icon); TextView text = layout.findViewById(R.id.toast_text); icon.setImageResource(R.drawable.ic_launcher); text.setText("Hello world!"); Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER, 0, 0); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show(); ``` 以上代码,通过LayoutInflater从XML布局文件加载Toast的布局样式,然后设置图标和文本内容,并通过setGravity()方法设置Toast显示位置,最后调用show()方法显示Toast。 注意:Toast必须在UI线程显示。如果在UI线程显示Toast,需要使用Handler或runOnUiThread()方法来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值