Android用Spinner做日期 年月日
16lz
2021-01-24
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) {}});}}
源程序下载
更多相关文章
- Android(安卓)仿美团网,大众点评购买框悬浮效果之修改版
- Android中坐标系相关的问题
- 【基础系列】Input控件专题
- Android手把手教你实现卡片式瀑布流效果(RecyclerView+CardView,附
- Android学习笔记:常用控件 RadioGroup和CheckBox
- Android表格布局之设置边框
- Android优化之布局优化
- Android(安卓)Fragment用法详解(2)--动态添加Fragment
- Android应用屏幕适应问题的解决