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

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

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

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

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

[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();

        }

    };

}

上一篇: Seekbar+ViewFlipper实现切屏效果下一篇: SurfaceView实现闪烁星星效果图

此内容引自大愚微博,原文地址:http://www.mjix.com/archives/957.html