Android开发之《实现类似Toast可以自动消失的提示栏Tip》
2024-09-30 19:52:28
import java.util.Timer;
import java.util.TimerTask; import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.widget.TextView; public class TipManager {
private static final String TAG = TipManager.class.getSimpleName(); private Context mContext;
private TextView mView; private Timer timer = null;
private TimerTask cancelTask = null; public TipManager(Context context, TextView view) {
mContext = context;
mView = view;
} public void init() {
timer = new Timer();
} public void release() {
if (cancelTask != null) {
cancelTask.cancel();
cancelTask = null;
} if (timer != null) {
timer.cancel();
timer = null;
}
} public void show(CharSequence text) {
// cancel hide task
if (cancelTask != null) {
cancelTask.cancel();
cancelTask = null;
timer.purge();
} showUI(text);
} public void show(CharSequence text, long duration) {
showUI(text); // cancel hide task
if (cancelTask != null) {
cancelTask.cancel();
cancelTask = null;
timer.purge();
} cancelTask = new TimerTask() {
@Override
public void run() {
hideUI("default");
}
}; timer.schedule(cancelTask, duration);
} private void showUI(final CharSequence text) {
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
doShow(text);
}
});
} private void hideUI(final CharSequence text) {
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
doHide(text);
}
});
} private void doShow(CharSequence text) {
mView.setText(text);
mView.setVisibility(View.VISIBLE);
} private void doHide(CharSequence text) {
mView.setText(text);
mView.setVisibility(View.INVISIBLE);
}
}
最新文章
- hive学习笔记
- 联系人按照A~~~Z排列
- eclipse中没有R文件
- Gradle: The New Android Build System
- 第三百三十九天 how can I 坚持
- java中的CAS
- 【转】Cannot change version of project facet Dynamic Web Module to 3.1 (Eclipse Maven唯一解决方案)
- entity 实体模型timeout设置
- Leetcode:LRUCache四个版本实现
- TTB 基本
- 实现一个简单的http请求工具类
- 1653: [Usaco2006 Feb]Backward Digit Sums
- DevOps之软件定义网络SDN
- Python面向对象篇(2)-继承
- ADS1.2中RO base与RW base
- swarm 使用整理
- 【Linux 进程】exec族函数详解
- iOS4.0及以上系统,关闭程序,applicationWillTerminate为调用问题解决
- vue父与子通信
- 迭代解析JSON简单实例