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
- Spinner 二级联动
- Spinner的二级联动
- Spinner的二级联动
- spinner二级联动
- android 中spinner 二级联动
- Android Spinner实现二级联动
- spinner 从数据库读取数据并实现二级联动。 .
- 通过Spinner视图实现二级联动功能(省市)
- Android练习——Spinner二级联动_城市选择
- 安卓入门--Spinner控件与二级联动详解
- Android中Spinner二级联动动态加载数据
- 二级联动
- 二级联动
- 二级联动
- 二级联动
- 二级联动
- 二级联动
- 二级联动
- 静态代理与动态代理
- box2d——2.添加鼠标关节MouseJoint和box2d基础概念
- oracle乱码问题
- CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)
- poj 1948 Triangular Pasture
- Spinner 二级联动
- 成佩涛编程之路——Mysql explain—type列详细说明
- 已有iis+php+mysql环境,如何更换php版本!
- 操作系统之线程
- 导入android工程出现红色感叹号
- dbcp pool相关参数详解
- PAT A 1044. Shopping in Mars (25)
- Linux crontab的使用方式,sh脚本的编写,sh脚本自动启动tomcat服务器,sh监控系统运行情况
- 链表的基本操作