当前位置:编程学习 > JS >>

从服务器端加载JSON数据的优化

为了实现代码的复用和进一步理解Handler的相关知识,我们对代码进行如下优化。
Activity文件
HanderTest_Text_New.java
[java] view plaincopy
package com.app.myhandler;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.os.Handler;  
import android.os.Message;  
import android.view.View;  
import android.widget.Button;  
import android.widget.ProgressBar;  
import android.widget.TextView;  
  
import com.app.util.MyThread;  
  
public class HanderTest_Text_New extends Activity {  
    private Button button1, button2;  
    private TextView textView1, textView2;  
    private Handler handler;  
    private ProgressBar progressBar;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_hander_text_new);  
  
        button1 = (Button) findViewById(R.id.button1);  
        button2 = (Button) findViewById(R.id.button2);  
        textView1 = (TextView) findViewById(R.id.textView1);  
        textView2 = (TextView) findViewById(R.id.textView2);  
        progressBar = (ProgressBar) findViewById(R.id.progressBar1);  
  
        button1.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                progressBar.setVisibility(View.VISIBLE);  
                new MyThread(handler,"http://10.0.2.2:8888/android/1.jsp",1).start();  
            }  
        });  
        button2.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                progressBar.setVisibility(View.VISIBLE);  
                new MyThread(handler,"http://10.0.2.2:8888/android/2.jsp",2).start();  
            }  
        });  
        handler = new Handler(){  
            @Override  
            public void handleMessage(Message msg) {  
                // TODO Auto-generated method stub  
                super.handleMessage(msg);  
                switch (msg.what) {  
                case 1:  
                    textView1.setText(msg.obj.toString());  
                    textView2.setText("文本二");  
                    progressBar.setVisibility(View.GONE);  
                    break;  
                case 2:  
                    textView1.setText("文本一");  
                    textView2.setText(msg.obj.toString());  
                    progressBar.setVisibility(View.GONE);  
                    break;  
                default:  
                    break;  
                }  
            }  
        };  
    }  
  
}  
 
MyThread文件
[java] view plaincopy
package com.app.util;  
  
import java.util.Map;  
  
import android.os.Handler;  
import android.os.Message;  
  
  
public class MyThread extends Thread{  
    private Handler handler;  
    private String url;  
    private int what;  
      
    public MyThread(Handler handler, String url, int what) {  
        this.handler = handler;  
        this.url = url;  
        this.what = what;  
    }  
    @Override  
    public void run() {  
        // TODO Auto-generated method stub  
        String result = ApplicationDemo.handleGet(url);  
        Message message = handler.obtainMessage();  
        message.what = what;  
        message.obj = result;  
        //向handler发送消息  
        handler.sendMessage(message);  
    }  
}  
 
XML布局文件
[html] view plaincopy
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical" >  
  
    <LinearLayout  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content" >  
              
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,