您的位置:首页 > 移动开发 > Android开发

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" 为弹出样式 默认为下拉样式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: