多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > android:省市縣三級聯動(基于json和spring)

android:省市縣三級聯動(基于json和spring)

來源:程序員人生   發布時間:2014-11-09 10:09:31 閱讀次數:3550次

1、請看效果圖“:

2、程序的代碼:

1、MainActivity.java

package com.loveplusplus.loader.demo.ui;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;


import com.loveplusplus.loader.demo.R;
import com.loveplusplus.loader.demo.util.HttpService;


/**
 * 省市縣3級聯動
 * 
 * 2014年10月30日 15:22:04
 * 
 * @author YJBo
 * 
 */
public class MainActivity extends Activity {
private static final String HOST_URL = "http://218.241.233.121/yqw";
private static final String PROVINCE_URL = "http://218.241.233.121/yqw/w/c/post?app=join&mdl=web&act=provinces&type=json";
private static final String CITY_URI = HOST_URL
+ "/w/c/post?app=join&mdl=web&type=json&act=citys&col.province=";
private static final String COUNTY_URL = HOST_URL
+ "/w/c/post?app=join&mdl=web&type=json&act=areas&col.city=";
// col.province
private Spinner provinceSpinner;
private Spinner citySpinner;
private Spinner countySpinner;
// 省市縣數組
private String[] Province;
private String[] ProvinceCode;
private String json;
// 市---
private String json2;
private String[] City;
private String[] CityCode;
// 縣
private String json3;
private String[] Country;
private String[] CountryCode;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 獲得省的名稱
loadProvices();
}


private void loadProvices() {
new Thread(new Runnable() {
@Override
public void run() {
try {
// 初步進入頁面,獲得所有省分
json = HttpService.postParamAndFileOB(PROVINCE_URL);
mHandler.sendEmptyMessage(1);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}


// 市---新
private void loadCitys2(final String provinceCode) {
if (null == provinceCode)
return;
new Thread(new Runnable() {
@Override
public void run() {
try {
// 獲得1個省的所有市
json2 = HttpService.postParamAndFileOB(CITY_URI
+ provinceCode);
mHandler.sendEmptyMessage(2);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}


// 縣
private void loadCitys3(final String CountryCode) {
if (null == CityCode)
return;
new Thread(new Runnable() {
@Override
public void run() {
try {
// 獲得縣份數據
json3 = HttpService.postParamAndFileOB(COUNTY_URL
+ CountryCode);
mHandler.sendEmptyMessage(3);
System.out.println("------sheng----麻煩呢-⑶3--");
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}


Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
try {
JSONArray array = new JSONArray(json);
Province = new String[array.length()];
ProvinceCode = new String[array.length()];
for (int i = 0; i < array.length(); i++) {
JSONObject obj = (JSONObject) array.get(i);
Province[i] = obj.getString("name");
ProvinceCode[i] = obj.getString("code");
}
provinceSpinner = (Spinner) findViewById(R.id.spinner_province);
// 初始化下拉列表加載數據適配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this,
android.R.layout.simple_spinner_item, Province);
// 設置下拉列表的樣式,下為設置為簡單樣式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// 將數據加載進下拉列表當中
provinceSpinner.setAdapter(adapter);
// 添加事件Spinner事件監聽,當點擊下拉列表中的某1選項以后觸發該事件
provinceSpinner
.setOnItemSelectedListener(new SpinnerSelectedListener());
// 設置默許值
provinceSpinner.setVisibility(View.VISIBLE);
} catch (Exception e) {
e.printStackTrace();
}
break;
// 市
case 2:
try {
JSONArray array = new JSONArray(json2);
City = new String[array.length()];
CityCode = new String[array.length()];
for (int i = 0; i < array.length(); i++) {
JSONObject obj = (JSONObject) array.get(i);
City[i] = obj.getString("name");
CityCode[i] = obj.getString("code");
}
citySpinner = (Spinner) findViewById(R.id.spinner_city);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this,
android.R.layout.simple_spinner_item, City);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
citySpinner.setAdapter(adapter);
citySpinner.setOnItemSelectedListener(new SpinLisSHi());
citySpinner.setVisibility(View.VISIBLE);
} catch (JSONException e) {
e.printStackTrace();
}
break;
// 縣
case 3:
try {
JSONArray array = new JSONArray(json3);
Country = new String[array.length()];
CountryCode = new String[array.length()];
for (int i = 0; i < array.length(); i++) {
JSONObject obj = (JSONObject) array.get(i);
Country[i] = obj.getString("name");
CountryCode[i] = obj.getString("code");
}
countySpinner = (Spinner) findViewById(R.id.spinner_county);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this,
android.R.layout.simple_spinner_item, Country);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
countySpinner.setAdapter(adapter);
countySpinner.setOnItemSelectedListener(new SpinLisXian());
countySpinner.setVisibility(View.VISIBLE);


} catch (JSONException e) {
e.printStackTrace();
}
break;


default:
break;
}
super.handleMessage(msg);
}
};


class SpinnerSelectedListener implements OnItemSelectedListener {


public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(MainActivity.this, Province[arg2], 3000).show();
// 下載市的名稱
loadCitys2(ProvinceCode[arg2]);
}


public void onNothingSelected(AdapterView<?> arg0) {
}
}


// 市
class SpinLisSHi implements OnItemSelectedListener {


public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(MainActivity.this, City[arg2], 3000).show();
// 下載縣的名稱
loadCitys3(CityCode[arg2]);
}


public void onNothingSelected(AdapterView<?> arg0) {
}
}


// 縣
class SpinLisXian implements OnItemSelectedListener {


public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(MainActivity.this,
Country[arg2] + CountryCode[arg2], 3000).show();
}


public void onNothingSelected(AdapterView<?> arg0) {
}
}
}


2、httpService.java

package com.loveplusplus.loader.demo.util;


import java.util.ArrayList;
import java.util.List;


import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;


/**
 * 2014年7月20日 16:26:40 這里是解析url的;
 * 
 * @author YJBo
 */
public class HttpService {


public static void main(String[] args) {
}



public static String postParamAndFileOB(String url) {
// http地址
String httpUrl = url;
System.out.println("此時的OB地址httpUrl++==" + httpUrl);
System.out
.println("--------------http://www.vxbq.cn/db/正在鏈接中????----------------------------");
try {
// HttpGet連接對象
HttpPost httpRequest = new HttpPost(httpUrl);
System.out.println("==wo走到這里了 20===");


System.out.println("==wo走到這里了 21===");
// 使用NameValuePair來保存要傳遞的Post參數
List<NameValuePair> params = new ArrayList<NameValuePair>();
// 設置字符集
HttpEntity httpentity = new UrlEncodedFormEntity(params, "UTF⑻");
// 要求httpRequest
httpRequest.setEntity(httpentity);
// 獲得HttpClient對象
HttpClient httpclient = new DefaultHttpClient();
// 要求HttpClient,獲得HttpResponse
HttpResponse httpResponse = httpclient.execute(httpRequest);
System.out.println("==wo走到這里了 23===");
// 要求成功
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 獲得返回的字符串
System.out.println("==wo走到這里了 24===");
String strResultOB = EntityUtils.toString(httpResponse
.getEntity());
// .getEntity();
System.out.println("==wo走到這里了 22===" + strResultOB);
return strResultOB;
} else {
System.out.println("數據要求失敗====");
}


} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}


3.activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ui.MainActivity" >


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="vertical" >


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_margin="5dp"
            android:text="@string/select_province"
            android:textSize="20sp" />


        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/separator_line"
            android:contentDescription="@string/app_name" />


        <Spinner
            android:id="@+id/spinner_province"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"/>
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="vertical" >


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_margin="5dp"
            android:text="@string/select_city"
            android:textSize="20sp" />


        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/separator_line"
            android:contentDescription="@string/app_name" />


        <Spinner
            android:id="@+id/spinner_city"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="vertical" >


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_margin="5dp"
            android:text="@string/select_county"
            android:textSize="20sp" />


        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/separator_line"
            android:contentDescription="@string/app_name" />


        <Spinner
            android:id="@+id/spinner_county"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp" />
    </LinearLayout>


</LinearLayout>

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 999av视频 | 欧美午夜在线观看理论片 | 亚洲天堂国产精品 | 一二三四视频免费观看在线看 | 国产在线一91区免费国产91 | 亚洲第一色站 | 青青青青爽极品在线视频 | 国产成人亚洲精品91专区手机 | 国产成人精品福利网站在线 | 国产亚洲综合激情校园小说 | 黄色网址免费大全 | 免费在线观看成年人视频 | 日本特黄高清免费大片爽 | 欧美日韩三区 | 看黄免费网站 | 中文国产成人精品少久久 | 久久国 | 国产69精品久久久久999三级 | 美女免费观看一区二区三区 | 国产三级日产三级 | 欧美日韩亚洲一区二区三区 | 久久久精品久久久久久久久久久 | 色一情一乱一乱91av | 欧美日韩视频一区三区二区 | 国产精品99久久久久久夜夜嗨 | 高清免费国产在线观看 | 欧美日韩亚洲视频 | 国产成人精品一区二区不卡 | 日本久久影视 | 中文字幕资源站 | 亚洲一区二区三区免费视频 | 国产欧美自拍视频 | 98国产视频 | 狠狠夜夜 | 叼嘿免费 | 那一个欧美一级毛片 | 最新国产一区二区精品久久 | 欧美第5页| 国产精品久久久久影院免费 | 亚洲国产精品久久卡一 | 黄色网址中文字幕 |