android 毕设点滴之显示进度条(二)
来源:互联网 发布:中昌数据股票 编辑:程序博客网 时间:2024/05/20 16:11
前言:
先解释这里的进度条的用处 , 当一个页面切换到另外一个页面, 需要从后台加载些载入页面所需的数据, 此时显示的 一个对话框或者进度条!
举个栗子:
当你打开一个web站点, 你能忍受 网页从上到下 一点一点, 要么冒出一点要么冒出一点这么感受嘛!!!
然而当你打开的另一个web站点, 该站点使用一个很友好的 进度条效果 ,我想这起码不会使用户对此感到太大的反感!
IProgress
public interface IProgress {public boolean isAvailable();public void startProgress();public void finishProgress();public void updateProgressMessage(CharSequence message);public void updateProgress(Integer value);public void setIndeterminate(boolean indeterminate);}
一个简单的进度条效果的实现类 SimpleDialogProgress,
public class SimpleDialogProgress implements IProgress {private Context context = null;private ProgressDialog progressDialog = null;private CharSequence title = "";private CharSequence message = "";public SimpleDialogProgress(Context context) {this.context = context;this.message = context.getString(R.string.progress_operating);}public SimpleDialogProgress(Context context, CharSequence title) {this.context = context;this.title = title;this.message = context.getString(R.string.progress_operating);}public SimpleDialogProgress(Context context, CharSequence title,CharSequence message) {this.context = context;this.title = title;this.message = message;}/* * (non-Javadoc) * * @see com.ishow.beycare.task.IProgress#isAvailable() */public boolean isAvailable() {// TODO Auto-generated method stubreturn progressDialog != null;}/* * (non-Javadoc) * * @see com.ishow.beycare.task.IProgress#start(java.lang.CharSequence) */public void startProgress() {// TODO Auto-generated method stubprogressDialog = ProgressDialog.show(context, title, message, true,false);}public void finishProgress() {if (isAvailable()) {progressDialog.dismiss();}}/* * (non-Javadoc) * * @see com.ishow.beycare.task.IProgress#updateMessage(java.lang.String) */public void updateProgressMessage(CharSequence message) {// TODO Auto-generated method stubif (isAvailable()) {progressDialog.setMessage(message);}}/* * (non-Javadoc) * * @see com.ishow.beycare.task.IProgress#updateProgress(java.lang.Integer) */public void updateProgress(Integer value) {// TODO Auto-generated method stubif (isAvailable()) {progressDialog.setProgress(value);}}/* * (non-Javadoc) * * @see com.ishow.beycare.task.IProgress#setIndeterminate(boolean) */public void setIndeterminate(boolean indeterminate) {// TODO Auto-generated method stubif (isAvailable()) {progressDialog.setIndeterminate(indeterminate);}}}TaskHost
public class TaskHost { public void onCancelled(int requestCode) { } public void onPostExecute(int requestCode, String result) { } public void onPreExecute(int requestCode) { }}
BaseTask
public abstract class BaseTask extends AsyncTask<Void, Integer, String> {protected IProgress progress;protected TaskHost taskHost;protected int requestCode;public BaseTask(int requestCode) {// TODO Auto-generated constructor stub}public IProgress getProgress() {return progress;}public void setProgress(IProgress progress) {this.progress = progress;}public TaskHost getTaskHost() {return taskHost;}public void setTaskHost(TaskHost taskHost) {this.taskHost = taskHost;}public int getRequestCode() {return requestCode;}public void setRequestCode(int requestCode) {this.requestCode = requestCode;}/* * (non-Javadoc) * * @see android.os.AsyncTask#onPreExecute() */@Overrideprotected void onPreExecute() {// 调用了接口的相应的方法if (progress != null) {progress.startProgress();progress.updateProgress(0);}if (taskHost != null) {taskHost.onPreExecute(requestCode);}super.onPreExecute();}protected void onPostExecute(String result) {super.onPostExecute(result);if (taskHost != null) {taskHost.onPostExecute(requestCode, result);}if (progress != null) {progress.updateProgress(100);progress.finishProgress();}}@Overrideprotected abstract String doInBackground(Void... params);}
ContextTask
public class ContextTask extends BaseTask{public ContextTask(int requestCode) {super(requestCode);// TODO Auto-generated constructor stub}@Overrideprotected String doInBackground(Void... params) {// TODO Auto-generated method stubString result = "该方法并不运行在UI线程当中,主要用于异步操作,所以在该方法中不能对UI当中的空间进行设置和修改 ";return result;}@Overrideprotected void onPreExecute() {// TODO Auto-generated method stubsuper.onPreExecute();}@Overrideprotected void onPostExecute(String result) {// TODO Auto-generated method stubsuper.onPostExecute(result);}}
UI中调用
public class ListContainActivity extends Activity{private TabHost tabHost ;ContextTask contextTask ;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.showcontain);contextTask = new ContextTask(0);TaskHost taskHost = new TaskHost(){@Overridepublic void onPreExecute(int requestCode) {// TODO Auto-generated method stubsuper.onPreExecute(requestCode);}};contextTask.setTaskHost(taskHost);contextTask.setProgress(new SimpleDialogProgress(this, "加载LIST", "正在加载中..."));contextTask.execute();}
- android 毕设点滴之显示进度条(二)
- Android 毕设点滴之过度页面(一)
- android自定义View之(二)------简单进度条显示样例篇
- 毕设之每天总结 二
- Android点滴(二)
- 毕设小结(二)Android进程间通信之LocalSocket
- 三星平台 android audio 架构探讨点滴积累之二
- Android标题栏进度条显示
- Android 显示进度条
- android标题栏显示进度条
- Android毕设之Fragment+TabHost(三)
- Android之点滴常识
- android学习笔记之显示在标题上的进度条
- android 之ProgressDialog进度条 显示 单位(kb)
- 菜鸟Android学习之路17-进度条的显示
- android 之ProgressDialog进度条 显示 单位(kb)
- Android 下载文件 进度条显示
- android framebuffer 操作-进度条显示
- 《指针和引用小结》
- void BubbleSort(int *a,int n)
- Android-Widget应用详解
- int checkCPUendian(){
- 我的第二次面试经历
- android 毕设点滴之显示进度条(二)
- 信号处理小结(2):滤波器
- String,Number原型扩展:保留指定的小数位数
- VS2008专业版过期的解决办法!
- mfc 窗口最前端显示 及 最大化 最小化
- 大学规划
- Service,BroadCast使用实例
- Linux 常用Shell
- 大型机汇编(mainframe assembler/HLASM)之S0C4解读