Android用Spinner做日期 年月日

效果图如下



1 主布局:3个Spinner控件

<?xml version="1.0" encoding="utf-8"?>            

2 item布局:

<?xml version="1.0" encoding="utf-8"?>

3 主程序:

3个Spinner控件分别有3个adapter和3个ArrayList作为数据源。 年份为当前年份的前后20年,设定默认选中为今年 月份12个月不会改变 天的总数根据月份的选择而改变
import java.util.ArrayList;import java.util.Calendar;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;public class ActMain extends Activity {private Spinner spYear;private Spinner spMonth;private Spinner spDay;private ArrayList dataYear = new ArrayList();private ArrayList dataMonth = new ArrayList();private ArrayList dataDay = new ArrayList();private ArrayAdapter adapterSpYear;private ArrayAdapter adapterSpMonth;private ArrayAdapter adapterSpDay;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.act_datespinner);spYear = (Spinner) findViewById(R.id.sp_year);spMonth = (Spinner) findViewById(R.id.sp_month);spDay = (Spinner) findViewById(R.id.sp_day);// 年份设定为当年的前后20年Calendar cal = Calendar.getInstance();for (int i = 0; i < 40; i++) {dataYear.add("" + (cal.get(Calendar.YEAR) - 20 + i));}adapterSpYear = new ArrayAdapter(this, R.layout.spinner_item, dataYear);adapterSpYear.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spYear.setAdapter(adapterSpYear);spYear.setSelection(20);// 默认选中今年// 12个月for (int i = 1; i <= 12; i++) {dataMonth.add("" + (i < 10 ? "0" + i : i));}adapterSpMonth = new ArrayAdapter(this, R.layout.spinner_item, dataMonth);adapterSpMonth.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spMonth.setAdapter(adapterSpMonth);adapterSpDay = new ArrayAdapter(this, R.layout.spinner_item, dataDay);adapterSpDay.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spDay.setAdapter(adapterSpDay);spMonth.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {dataDay.clear();Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, Integer.valueOf(spYear.getSelectedItem().toString()));cal.set(Calendar.MONTH, arg2);int dayofm = cal.getActualMaximum(Calendar.DAY_OF_MONTH);for (int i = 1; i <= dayofm; i++) {dataDay.add("" + (i < 10 ? "0" + i : i));}adapterSpDay.notifyDataSetChanged();}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}});}}

          源程序下载    

更多相关文章

  1. Android(安卓)仿美团网,大众点评购买框悬浮效果之修改版
  2. Android中坐标系相关的问题
  3. 【基础系列】Input控件专题
  4. Android手把手教你实现卡片式瀑布流效果(RecyclerView+CardView,附
  5. Android学习笔记:常用控件 RadioGroup和CheckBox
  6. Android表格布局之设置边框
  7. Android优化之布局优化
  8. Android(安卓)Fragment用法详解(2)--动态添加Fragment
  9. Android应用屏幕适应问题的解决

随机推荐

  1. android handler 多线程
  2. Android电池电量检测
  3. Android(安卓)贪吃蛇游戏小结
  4. Android之JNI初级篇
  5. 图片的使用
  6. 解决:android:editable is deprecated: Us
  7. Android模拟 HTTP multipart/form-data
  8. Android(安卓)在一个应用中如何启动另外
  9. Android 状态栏透明的一些小结
  10. 详解Android TableLayout中stretchColumn