在网上找到一段显示不会关闭的Toast的代码,是使用Java的反射机制实现的,在Android2.3中可以实现,但是在Android3.0中不起作用,这是为什么呢?
// 先创建一个Toast对象
Toast toast = Toast.makeText(this, "永不关闭的Toast", Toast.LENGTH_LONG);
// 设置Toast信息提示框显示的位置(在屏幕顶部水平居中显示)
toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);
try
{
// 从Toast对象中获得mTN变量
Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
// TN对象中获得了show方法
Method method = obj.getClass().getDeclaredMethod("show", null);
// 调用show方法来显示Toast信息提示框
method.invoke(obj, null);
}
catch (Exception e)
{
}
// 先创建一个Toast对象
Toast toast = Toast.makeText(this, "永不关闭的Toast", Toast.LENGTH_LONG);
// 设置Toast信息提示框显示的位置(在屏幕顶部水平居中显示)
toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);
try
{
// 从Toast对象中获得mTN变量
Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
// TN对象中获得了show方法
Method method = obj.getClass().getDeclaredMethod("show", null);
// 调用show方法来显示Toast信息提示框
method.invoke(obj, null);
}
catch (Exception e)
{
}
解决方案 »
- 对Android开发串口通讯的疑惑,无法通讯
- pad机器与android模拟器分辨率一样,但显示效果不一样
- android如何下载5M或者以上的大图到Gallery。
- 如何获取自定义的scrollview当前显示的大小?
- 怎么监听自己建立的数据库?
- 新浪微博授权
- init.rc添加shell脚本无法自启动问题
- 机顶盒开发,用遥控器方向键控制焦点的问题。
- 历史记录和下拉提示使用同一个ListView的问题
- 我找人做了个APP 只有安卓客户端 APP服务器端怎么开发?
- android如何实现txt分页阅读
- [打包下载]Windows下的Android SDK(2.2以前)各个版本及Google API,文档说明等
要保持版本的兼容性最好别用反射。
TN类的属性在新版本里变为static了,不确定跟这个有没有关系。
希望有人能给出答案~