Android Studio绑定下拉框数据详解

效果显示:

1、页面xml代码(项目的代码,直接复制会有错,自己修改一下就好)

<TextView android:id="@+id/consultation_tv_section" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/consultation_et_doctor" android:layout_alignLeft="@+id/consultation_tv_phone" android:layout_alignStart="@+id/consultation_tv_phone" android:layout_marginBottom="8dp" android:text="挂号科室:" android:textColor="@color/black" android:textSize="18sp" android:textStyle="bold" /> <Spinner android:id="@+id/consultation_et_section" android:layout_width="260dp" android:layout_height="40dp" android:layout_alignLeft="@+id/consultation_et_phone" android:layout_alignStart="@+id/consultation_et_phone" android:layout_below="@+id/consultation_et_phone" android:layout_marginTop="22dp" android:background="@drawable/input_bg" android:ems="10" android:inputType="textPersonName" android:paddingLeft="15dp" android:paddingRight="15dp" android:spinnerMode="dialog" />

2、java创建自定义参数

Spinner consultation_et_section;//挂号科室:

3、获取选择控件(Spinner)

consultation_et_section = (Spinner) findViewById(R.id.consultation_et_section);

4、获取JSON数据和绑定数据,可以参考前一篇文章

(1)、创建自定义参数

List<String> listMemDoctorData = null;

(2)、获取数据和绑定数据

/** * 获取JSON医生信息数据 */ public void findDoctorData(int sectionId){ AsyncHttpClient client = new AsyncHttpClient(); client.get(AbAppConfig.DATA_URL + "appGVConsultation/findDoctorData?sectionId="+sectionId, null, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { try { JSONObject object = new JSONObject(new String(responseBody));//获取json数据 JSONArray jsonArray = object.getJSONArray("obj");//获取数据集名称为obj的数据 Log.d("jsonArray数据输出:", String.valueOf(jsonArray)); listMemDoctor = new ArrayList<>(); for (int i = 0; i < jsonArray.length();i++) { MemDoctor doctor = MemDoctor.doctorData(jsonArray.getJSONObject(i));//把数据存在novels集合中 if (doctor != null){ listMemDoctor.add(doctor); } } if (jsonArray.length() > 0){ listMemDoctorData = new ArrayList<>(); doctor_id = listMemDoctor.get(0).id;//获取第一个医生的ID for (int i = 0; i < listMemDoctor.size(); i++){ MemDoctor section = listMemDoctor.get(i); listMemDoctorData.add(section.doctorName); } //建立 Adapter并且绑定数据源 ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(GV_Consultation.this, android.R.layout.simple_spinner_item, listMemDoctorData); //设置样式 arrayAdapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); //绑定 Adapter到控件 consultation_et_doctor.setAdapter(arrayAdapter); }else { consultation_et_doctor.setAdapter(null); doctor_id = 0; Toast.makeText(GV_Consultation.this, "该科室没有医生信息数据", Toast.LENGTH_SHORT).show(); } } catch (JSONException e) { Toast.makeText(GV_Consultation.this, "数据请求失败,请稍后重试", Toast.LENGTH_SHORT).show(); } } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { //请求失败的回调处理 Toast.makeText(GV_Consultation.this, "请链接网络,稍后重试", Toast.LENGTH_SHORT).show(); } }); }

5、创建点击事件

//医生选择点击事件 consultation_et_doctor.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { doctor_id = listMemDoctor.get((int) id).id;//获取选择医生的ID } @Override public void onNothingSelected(AdapterView<?> parent) { } });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-08 19:14:43

Android Studio绑定下拉框数据详解的相关文章

yii2带搜索功能的下拉框实例详解_php实例

简单的小功能,但是用起来还是蛮爽的.分享出来让更多的人有更快的开发效率,开开心心快乐编程. 如果你还没有使用过composer,你可就out了,看我的教程分享,composer简直就是必备神奇有木有.都说到这个点上了,我们赶紧使用composer进行安装吧. 先给大家展示下效果图: 下面给大家说下具体实现思路: composer require kartik-v/yii2-widget-select2 "@dev" #特别说明,因为这里安装的dev版本,也就是开发版本,不稳定版本,如果

jquery获取下拉框值详解

我们利用js获取select值是比较麻烦的,下面我们来看看利用jquery来获取select值的代码吧,下面我们来看分二种获取方法. <select id="ddltype"> <option value="">请选择</option> <option value="1">安徽省</option> -- </select> <select id="ddltyp

Android中Spinner(下拉框)控件的使用详解_Android

android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧. Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器.Spinner是View类得一个子类. 1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" and

Android中Spinner(下拉框)控件的使用详解

android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧. Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器.Spinner是View类得一个子类. 1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" and

Android第三方开源下拉框NiceSpinner使用详解

android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定制或者第三方设计的下拉框Spinner. NiceSpinner是一个第三方开源的下拉框Spinner,其在github上的项目主页是:https://github.com/arcadefire/nice-spinner  NiceSpinner原设计效果如动图所示: 但是通常开发者对于可能还需要对

静态测试-Android两个下拉框静态联动

问题描述 Android两个下拉框静态联动 只需要静态联动,是一个选课的年级选择,一级下拉框是1-6年级上下册共12个选择,二级下拉框是第一单元到第十单元.我在做的时候,可以选择,但是选了第二个之后,第一个的数据会变动.本人是初学者菜鸟,求指教 解决方案 页面这样,然后服务器抛出空指针错误 解决方案二: 只能说代码写的不对,查查代码吧 解决方案三: 检查一下都有哪里可以对第一个下拉列表进行修改,考虑怎样会触发这段代码执行,必要情况下走一下断点. 解决方案四: 这种问题最好把你的代码贴出来

android中自定义下拉框

android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在编辑框的下面,然后又很多选项的下拉框,可是我在网上找了一下,没有这种下拉框额,就自己写了一个,看效果图先: ,这个是资料填写的一部分界面,三个下拉框,选择故乡所在地: 点击之后弹出下拉框,选择下面的选项: 三个下拉框时关联的,第一个决定了第二数据内容,第二个决定了第三个数据内容,如果三个全部选好之后

如何根据班级获取学员下拉框数据

前台页面 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>根据班级获取学员下拉框数据</title> <script type="text/javascript" > //1.页面加载完毕后创建异步对象 请求班级数据 window.onload = function (

mvvm-knockout级联绑定下拉框问题

问题描述 knockout级联绑定下拉框问题 网页中,如何利用Knockout.js把如下结构的json绑定到两个下拉框中,显示是CategoryName,value是CategoryId,父级变,子级下拉框跟着变,请大侠直接告诉我解决方案好吗? [ { "ParentCategory": { "CategoryId": "a70b2eb0-483e-4bb7-a3da-4d80ab48d94f", "CategoryName"