0
点赞
收藏
分享

微信扫一扫

Android “正在加载中…”实现方法 此内容引自大愚微博,原文地址:http://www.mjix.com/archives/957.html...


一个好的应用应该是对用户做出的任何动作都做出响应,如当用户请求登陆请求时,应该弹出正在加载中的对话框让用户知道应用正在请求中,实现的方式是用Thread+ProgressDialog,通过Handler来通知加载完成。实现过程比较简单我就不多说了,先看效果图:

 

不描述,直接代码,代码是拼凑,主要是想说明过程。

[Copy]View Code JAVA1
 
public class LoginActivity extends Activity{
 
    public ProgressDialog loadingDialog;
 
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        loginThread("test", "test");
    }
 
    /**
    * 开始启动加载对话框
    */
    public void loading(Activity act){
        Log.d(Config.LOG_TAG, "Starting loading");
        loadingDialog = new ProgressDialog(act);
        loadingDialog.setTitle("正在加载数据...");
        loadingDialog.setMessage("请稍等...");
        loadingDialog.show();
    }
 
    /**
    * 结束加载对话框
    */
    public void stopLoading(){
        Log.d(Config.LOG_TAG, "Stop loading");
        if(loadingDialog != null){
            loadingDialog.dismiss();
        }
    }

 

 

/**
    * 开始登陆检查线程
    */
    public void loginThread(final String uname, final String upwd){
        Common.loading(this); //开始加载
 
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                //get方式传密码是不好的做法
                String url = String.format("http://www.hcent.com/login/%s/%s", uname, upwd);
                String data = NetWork.getHttpData(url);
 
                //加载完成,发送消息
                Message msg = loadHandle.obtainMessage(StatusConfig.LOADING_OVER);
                Bundle bu = new Bundle();
                bu.putString("data", data);
                msg.setData(bu);
                loadHandle.sendMessage(msg);
            }
        });
        t.start();
    }

 

/**
    * 消息通知句柄
    */
    public Handler loadHandle = new Handler(){
        @Override
        public void handleMessage(Message msg){
            if(msg.what == StatusConfig.LOADING_OVER){ //加载完成
                if(msg.getData().getString("data").equals("1")){ //登陆成功
                }
            }
            Common.stopLoading();
        }
    };
}


 

举报
0 条评论