Spinner 二级联动

来源:互联网 发布:json.stringify array 编辑:程序博客网 时间:2024/06/05 03:34

Spinner  二级联动

import java.util.List;public class YingJiShiJianLeiXingBean {private String eventtype;private List<DescribeBean> list_desBeans;public String getEventtype() {return eventtype;}public void setEventtype(String eventtype) {this.eventtype = eventtype;}public List<DescribeBean> getList_desBeans() {return list_desBeans;}public void setList_desBeans(List<DescribeBean> list_desBeans) {this.list_desBeans = list_desBeans;}}

实体类2

public class DescribeBean {private String name;private String id;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}}

主要类:

package com.cdc.liandong;import java.util.ArrayList;import java.util.List;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import com.androidquery.AQuery;import com.androidquery.callback.AjaxCallback;import com.androidquery.callback.AjaxStatus;import com.cdc.bean.DescribeBean;import com.cdc.bean.YingJiShiJianLeiXingBean;import android.app.Activity;import android.os.Bundle;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;public class MainActivity extends Activity {/** 应急事件类型大类型 **/private List<String> list_yingList = new ArrayList<String>();/** 应急事件类型第一个详细类型 (默认的类型) ***/private List<String> list_first = new ArrayList<String>();/** 应急事件类型二级详细类型--文字 ***/private List<List<String>> list_detail = new ArrayList<List<String>>();/** 应急事件类型二级详细类型--id ***/private List<List<String>> list_detail_ids = new ArrayList<List<String>>();/***记录事件类型二级分类中集合的位置--在二级分类的id中调用**/private int pos;private String path = "http://192.168.0.115:8080/应急事件类型全数据.txt";/*** 事件类型一级分类 **/private Spinner sp_shijianleixing_yiji;/*** 事件类型二级分类 **/private Spinner sp_shijianleixing_erji;/***保存应急级别的实体类***/private List<YingJiShiJianLeiXingBean> list = new ArrayList<YingJiShiJianLeiXingBean>();/***事件类型的一级适配器***/private  ArrayAdapter<String> adapter_shijianleixing_yiji;/***事件类型的二级适配器***/private ArrayAdapter<String> adapte_shijianleixing_erji;private AQuery aq;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);aq = new AQuery(this);aq.ajax(path, String.class, new AjaxCallback<String>() {@Overridepublic void callback(String url, String object, AjaxStatus status) {// TODO Auto-generated method stub// System.out.println(object);if (object != null&& object.startsWith("\ufeff")) {object = object.substring(1);}if (object != null && object.length() > 0) {try {JSONArray jsonArray = new JSONArray(object);for (int i = 0; i < jsonArray.length(); i++) {JSONObject jsonObject = jsonArray.getJSONObject(i);YingJiShiJianLeiXingBean yingJiShiJianLeiXingBean = new YingJiShiJianLeiXingBean();String typeString = jsonObject.optString("eventtype");JSONArray jsonArray2 = jsonObject.optJSONArray("describe");List<DescribeBean> list_desBeans = new ArrayList<DescribeBean>();for (int j = 0; j < jsonArray2.length(); j++) {DescribeBean describeBean = new DescribeBean();JSONObject jsonObject2 = jsonArray2.getJSONObject(j);String nameString = jsonObject2.optString("name");String idString = jsonObject2.optString("id");describeBean.setId(idString);describeBean.setName(nameString);list_desBeans.add(describeBean);}yingJiShiJianLeiXingBean.setEventtype(typeString);yingJiShiJianLeiXingBean.setList_desBeans(list_desBeans);list.add(yingJiShiJianLeiXingBean);}getData(list);adapter_shijianleixing_yiji = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,list_yingList);adapter_shijianleixing_yiji.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);sp_shijianleixing_yiji = (Spinner) findViewById(R.id.shijianleixing_yiji);sp_shijianleixing_erji = (Spinner) findViewById(R.id.shijianleixing_erji);sp_shijianleixing_yiji.setAdapter(adapter_shijianleixing_yiji);adapte_shijianleixing_erji = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,list_first);adapte_shijianleixing_erji.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);sp_shijianleixing_erji.setAdapter(adapte_shijianleixing_erji);sp_shijianleixing_yiji.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> arg0,View arg1, int arg2, long arg3) {// TODO Auto-generated method stub pos = sp_shijianleixing_yiji.getSelectedItemPosition(); adapte_shijianleixing_erji = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,list_detail.get(pos)); adapte_shijianleixing_erji.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);System.out.println("pos=="+pos+","+list_detail.get(pos).size());sp_shijianleixing_erji.setAdapter(adapte_shijianleixing_erji);}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});sp_shijianleixing_erji.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> arg0,View arg1, int arg2, long arg3) {// TODO Auto-generated method stub  System.out.println("选择的事件类型是="+sp_shijianleixing_erji.getItemAtPosition(arg2).toString()+",对应的id为:"+list_detail_ids.get(pos).get(arg2));}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {Toast.makeText(getApplicationContext(), "网络错误,请稍后重试!",Toast.LENGTH_SHORT).show();}}});}public void getData(List<YingJiShiJianLeiXingBean> list) {int a = list.get(0).getList_desBeans().size();for (int i = 0; i < list.size(); i++) {YingJiShiJianLeiXingBean yBean = (YingJiShiJianLeiXingBean) list.get(i);String tString = yBean.getEventtype();list_yingList.add(tString);List<DescribeBean> describeBeans = yBean.getList_desBeans();List<String> list_names=new ArrayList<String>();List<String> list_ids=new ArrayList<String>();for (int j = 0; j < describeBeans.size(); j++) {list_names.add(describeBeans.get(j).getName());list_ids.add(describeBeans.get(j).getId());}list_detail.add(list_names);list_detail_ids.add(list_ids);}List<DescribeBean> llBeans = list.get(0).getList_desBeans();for (int j = 0; j < llBeans.size(); j++) {list_first.add(llBeans.get(j).getName());}}}

布局:
<RelativeLayout 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:background="#FFFFFF" >          <TextView        android:id="@+id/ems_shijianleixing_tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/shijianleixing_yiji"        android:layout_marginTop="7px"        android:text="*事件类型:" />    <Spinner        android:id="@+id/shijianleixing_yiji"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="7px"        android:layout_toRightOf="@id/ems_shijianleixing_tv"        android:drawSelectorOnTop="true" />    <Spinner        android:id="@+id/shijianleixing_erji"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@id/shijianleixing_yiji"        android:layout_marginTop="7px"        android:layout_toRightOf="@id/ems_shijianleixing_tv"        android:drawSelectorOnTop="true" /></RelativeLayout>

应急事件类型全数据.txt

[{"eventtype":"类1","describe":[{"name":"演练11","id":0}]},{"eventtype":"类2","describe":[{"name":"演练21","id":1},{"name":"演练22","id":2},{"name":"演练23","id":3},{"name":"演练24","id":4},{"name":"演练25","id":7}]},{"eventtype":"类3","describe":[{"name":"演练31","id":32}]},{"eventtype":"类4","describe":[{"name":"演练41","id":33},{"name":"演练42","id":34},{"name":"演练43","id":35},{"name":"演练44","id":36}]},{"eventtype":"类5","describe":[{"name":"演练51","id":64}]}]


0 0