activity_spinner.xml

<?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" >    <Spinner        android:id="@+id/spinner1"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <Spinner        android:id="@+id/spinner2"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <Spinner        android:id="@+id/spinner3"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/textView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="TextView" /></LinearLayout>

SpinnerActivity.java

package com.wangzhu.demospinner;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class SpinnerActivity extends Activity {    private Spinner spinner1, spinner2, spinner3;    private TextView textView1;    private ArrayAdapter<String> adapter1, adapter2, adapter3;    private List<String> listData1, listData2, listData3;    private ProgressDialog dialog;    private String downloadData;    private MyThread myThread1, myThread2, myThread3, myThread4, myThread5;    private MyHandler myHandler;    private String preUri = "http://m.weather.com.cn/data";    private String uri;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_spinner);        textView1 = (TextView) findViewById(R.id.textView1);        listData1 = new ArrayList<String>();        listData2 = new ArrayList<String>();        listData3 = new ArrayList<String>();        adapter1 = new ArrayAdapter<String>(this,                android.R.layout.simple_spinner_item, listData1);        adapter2 = new ArrayAdapter<String>(this,                android.R.layout.simple_spinner_item, listData2);        adapter3 = new ArrayAdapter<String>(this,                android.R.layout.simple_spinner_item, listData3);        spinner1 = (Spinner) findViewById(R.id.spinner1);        spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view,                    int position, long id) {                Log.d("TAG", "spinner1 " + position + "=====" + id);                uri = preUri + String.format("5/city%02d", position + 1)                        + ".xml";                init2();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });        spinner1.setAdapter(adapter1);        spinner2 = (Spinner) findViewById(R.id.spinner2);        spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view,                    int position, long id) {                Log.d("TAG", "spinner2 " + position + "=====" + id);                uri = preUri                        + String.format("5/city%02d",                                spinner1.getSelectedItemId() + 1)                        + String.format("%02d", position + 1) + ".xml";                init3();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });        spinner2.setAdapter(adapter2);        spinner3 = (Spinner) findViewById(R.id.spinner3);        spinner3.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view,                    int position, long id) {                Log.d("TAG", "spinner3 " + position + "=====" + id);                uri = preUri                        + String.format("5/city%02d",                                spinner1.getSelectedItemId() + 1)                        + String.format("%02d",                                spinner2.getSelectedItemId() + 1)                        + String.format("%02d", position + 1) + ".xml";                init4();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });        spinner3.setAdapter(adapter3);        myHandler = new MyHandler();        myThread1 = new MyThread(1);        myThread2 = new MyThread(2);        myThread3 = new MyThread(3);        myThread4 = new MyThread(4);        myThread5 = new MyThread(5);        init1();    }    private void init1() {        showDialog("温馨提示", "正在加载第一级目录,请稍候。。。");        uri = "http://m.weather.com.cn/data5/city.xml";        new Thread(myThread1).start();    }    private void init2() {        showDialog("温馨提示", "正在更新第二级目录,请稍候。。。");        new Thread(myThread2).start();    }    private void init3() {        showDialog("温馨提示", "正在更新第三季目录,请稍后。。。");        new Thread(myThread3).start();    }    private void init4() {        showDialog("温馨提示", "正在更新天气,请稍候。。。");        new Thread(myThread4).start();    }    private void init5() {        showDialog("温馨提示", "正在更新天气,请稍候。。。");        new Thread(myThread5).start();    }    private void showDialog(String title, String msg) {        dialog = new ProgressDialog(SpinnerActivity.this);        dialog.setTitle(title);        dialog.setMessage(msg);        dialog.show();    }    private void download(String uri) {        downloadData = null;        try {            URL url = new URL(uri);            // 使用HttpURLConnection打开连接            HttpURLConnection conn = (HttpURLConnection) url.openConnection();            conn.setReadTimeout(2000);            conn.setUseCaches(false);            if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {                InputStream in = conn.getInputStream();                BufferedReader reader = new BufferedReader(                        new InputStreamReader(in));                StringBuffer result = new StringBuffer();                String readLine = null;                while ((readLine = reader.readLine()) != null) {                    result.append(readLine);                }                // 关闭InputStream                in.close();                // 关闭http连接                conn.disconnect();                downloadData = result.toString();            }        } catch (MalformedURLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    class MyThread implements Runnable {        private int flag;        public MyThread(int flag) {            this.flag = flag;        }        @Override        public void run() {            // Looper.prepare();            download(uri);            myHandler.sendEmptyMessage(flag);        }    }    class MyHandler extends Handler {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            Log.d("TAG", uri);            switch (msg.what) {            case 1:                if (null != downloadData) {                    Log.d("TAG", downloadData);                    String[] dataArr = downloadData.split(",");                    for (int i = 0, len = dataArr.length; i < len; i++) {                        listData1.add(dataArr[i].substring(3));                    }                    // adapter1.notifyDataSetChanged();                    adapter1 = new ArrayAdapter<String>(SpinnerActivity.this,                            android.R.layout.simple_spinner_item, listData1);                    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);                    spinner1.setAdapter(adapter1);                }                break;            case 2:                if (null != downloadData) {                    Log.d("TAG", downloadData);                    String[] dataArr = downloadData.split(",");                    listData2.clear();                    for (int i = 0, len = dataArr.length; i < len; i++) {                        listData2.add(dataArr[i].substring(5));                    }                    // adapter2.notifyDataSetChanged();                    adapter2 = new ArrayAdapter<String>(SpinnerActivity.this,                            android.R.layout.simple_spinner_item, listData2);                    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);                    spinner2.setAdapter(adapter2);                }                break;            case 3:                if (null != downloadData) {                    Log.d("TAG", downloadData);                    String[] dataArr = downloadData.split(",");                    listData3.clear();                    for (int i = 0, len = dataArr.length; i < len; i++) {                        listData3.add(dataArr[i].substring(7));                    }                    // adapter3.notifyDataSetChanged();                    adapter3 = new ArrayAdapter<String>(SpinnerActivity.this,                            android.R.layout.simple_spinner_item, listData3);                    adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);                    spinner3.setAdapter(adapter3);                }                break;            case 4:                if (null != downloadData) {                    Log.d("TAG", downloadData);                    dialog.dismiss();                    uri = preUri + "/" + downloadData.substring(7) + ".html";                    init5();                }                break;            case 5:                if (null != downloadData) {                    Log.d("TAG", downloadData);                    textView1.setText(downloadData);                }                break;            }            dialog.dismiss();        }    }}

更多相关文章

  1. Android(安卓)SDK下载和更新失败的解决方法
  2. android的文件、目录操作
  3. 解决android sdk 无法更新
  4. Android(安卓)Q Beta 6 终极测试版发布!
  5. Android体系结构
  6. Android线程模型解析(包括UI的更新)
  7. Android天气预报详解
  8. android listview局部刷新和模拟应用下载
  9. 获取Android自己写好了的apk以及反编译

随机推荐

  1. Ubuntu Linux 安装配置JDK17开发环境
  2. Anaconda Navigator卡logo打不开闪退问题
  3. 安装配置Puppet
  4. 基于CentOS 7系统安装部署Grafana服务端
  5. 树莓派 Raspberry Pi (bullseye)更换阿里云
  6. [error:Symfony\Component\HttpFoundat
  7. 云服务器快速配置阿里巴巴NTP(网络时间协
  8. Django的安装及配置环境变量
  9. 云服务器修改dns服务器为阿里云公共dns服
  10. 1. vue常用术语,实例演示 2. 将课堂上提