android 之 级联下拉 实现弹出和下拉两种效果
2015-06-17 09:38
681 查看
如图效果
package com.haiyisoft.teamassistant.activity; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TableRow; import android.widget.Toast; import android.widget.CompoundButton.OnCheckedChangeListener; import com.haiyisoft.mobile.android.activity.Activity; import com.haiyisoft.mobile.android.view.DateEdit; import com.haiyisoft.mobile.common.Person; import com.haiyisoft.mobile.common.Plan; import com.haiyisoft.teamassistant.R; import com.haiyisoft.teamassistant.swipeback.BaseActivity; import com.haiyisoft.teamassistant.view.CheckSwitchButton; /** * 计划添加 * * @author * * <p> * Modification History: * </p> * <p> * Date Author Description * </p> * <p> * -------------------------------------------------------------- * </p> * <p> * * </p> * <p> * </p> */ @SuppressLint({ "SimpleDateFormat", "Recycle" }) public class PlanAddPersonActivity extends BaseActivity { private Spinner firstSpinner = null; //一级 private Spinner secondSpinner = null; //二级 ArrayAdapter<String> firstAdapter = null; //一级适配器 ArrayAdapter<String> secondAdapter = null; //二级适配器 static int firstPosition = 2; //一级选项值 private String[] first = new String[] {"培训管理计划","安全管理计划","班务管理计划","材料管理计划","其他"}; //二级选项值 private String[][] second = new String[][] { { "培训管理" }, { "个人防护用品识别表管理", "个人防护用品注册管理", "安全区代表检查", "保供电值班管理", "急救药品检查管理"}, { "培训记录", "交接班记录", "资料定制管理", "工具清册管理", "工具领用记录表管理", "工具检查维护记录表管理", "公用个人防护用品检查维护记录表管理", "行车记录表管理", "班前会记录", "班后会记录", "班组会议记录" }, { "无" }, { "其他" } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_plan_add); initSpinner(); } /* * 设置下拉框 */ private void initSpinner() { firstSpinner = (Spinner)findViewById(R.id.spin_first); secondSpinner = (Spinner)findViewById(R.id.spin_second); //绑定适配器和值 firstAdapter = new ArrayAdapter<String>(PlanAddPersonActivity.this, android.R.layout.simple_spinner_item, first); firstSpinner.setAdapter(firstAdapter); firstSpinner.setSelection(3,true); //设置默认选中项,此处为默认选中第4个值 firstAdapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice); secondAdapter = new ArrayAdapter<String>(PlanAddPersonActivity.this, android.R.layout.simple_spinner_item, second[1]); secondSpinner.setAdapter(secondAdapter); secondSpinner.setSelection(0,true); //默认选中第0个 //一级下拉框监听 firstSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { // 表示选项被改变的时候触发此方法,主要实现办法:动态改变二级适配器的绑定值 @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { //position为当前一级选中的值的序号 //将二级适配器的值改变为second[position]中的值 secondAdapter = new ArrayAdapter<String>(PlanAddPersonActivity.this, android.R.layout.simple_spinner_item, second[position]); // 设置二级下拉列表的选项内容适配器 secondSpinner.setAdapter(secondAdapter); firstPosition = position; //记录当前一级序号,留给下面修改县级适配器时用 secondAdapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice); // type=String.valueOf(ids); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } }
Xml
<Spinner android:id="@+id/spin_first" style="@style/SecondFontSize" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1.5" android:background="@drawable/ctrl_select_bg" android:hint="@string/plan_type" android:padding="10dp" android:spinnerMode="dialog" android:textColor="#888888" /> <Spinner android:id="@+id/spin_second" style="@style/SecondFontSize" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1.5" android:background="@drawable/ctrl_select_bg" android:hint="@string/plan_otherContent" android:padding="10dp" android:spinnerMode="dialog" android:textColor="#888888" />
android:spinnerMode="dialog" 为弹出样式 默认为下拉样式
相关文章推荐
- Android中pendingIntent的深入理解
- 学习android第二天 Android单元测试
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- android在Canvas使用drawBitmap画一幅画
- Android Studio 启动连接服务器的问题
- Android资源使用详解(一)
- Android 设置EditText光标颜色及粗细
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
- Android Loader学习
- android小事记
- Android 4.4 实现状态栏(status bar)透明效果
- android软重启问题
- Android 屏幕实现水龙头事件
- Android 内存溢出解决方案(OOM) 整理总结
- Android解决内存溢出问题
- android studio 启动报错
- Android学习【按钮监听】
- checking for updated SDK components (AndroidStudio第一次启动一直进不去)
- android的发展
- android 震动