自定义Toast 可以根据自己的需求 设置显示时间

package com.elite;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

import android.content.Context;
import android.os.Handler;
import android.view.Gravity;
import android.widget.Toast;

public class Toasts {
	private Toast toast;
	private Field field;
	private Object obj;
	private Method showMethod;
	private Method hideMethod;
	private int time;

	public Toasts(Context c, String text,int time) {
		toast = Toast.makeText(c, text, time);
		toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL,
				0, 0);
		this.time=time;
		reflectionTN();
	}
public void show(){
	toast.show();
	Handler handler = new Handler();
	handler.postDelayed(new Runnable() {

		@Override
		public void run() {
			try {
				hideMethod.invoke(obj, null);// 调用TN对象的hide()方法,关闭toast
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}, time);
	
}
	private void reflectionTN() {
		try {
			field = toast.getClass().getDeclaredField("mTN");
			field.setAccessible(true);
			obj = field.get(toast);
			showMethod = obj.getClass().getDeclaredMethod("show", null);
			hideMethod = obj.getClass().getDeclaredMethod("hide", null);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值