所有的原理的说明都在注释里,按顺序看非常详细。
布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<Spinner
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:id="@+id/sheng"
android:background="#e7e8e9"></Spinner>
<Spinner
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:id="@+id/shi"
android:background="#a92521"></Spinner>
<Spinner
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:id="@+id/qu"
android:background="#615221"></Spinner>
</LinearLayout>
主程序:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private Spinner spinner_sheng,spinner_shi,spinner_qu;
//全局的jsonObject
private JSONObject jsonObject;//把全国的省市区的信息以json的格式保存,解析完成后赋值为null
private String[] allProv;//所有的省
private static final String TAG = "我想告诉你:";
private ArrayAdapter<String> provinceAdapter;//省份数据适配器
private ArrayAdapter<String> cityAdapter;//城市数据适配器
private ArrayAdapter<String> areaAdapter;//区县数据适配器
private String[] allSpinList;//在spinner中选出来的地址,后面需要用空格隔开省市区
private String provinceName;//省的名字