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

Android日期选择器,可以自定义样式

2015-11-20 11:46 579 查看
第一次写这个鬼。各位勿喷。好的给个支持。不好的指出来。大家一起学习进步!
http://download.csdn.net/detail/song_java1/9285399,,先附上源码下载地址
下面开始讲解:这个是效果图(字体样式。。嘿嘿。。不要介意)




整个项目需要用到的东西

主要的类是:RollPickerDialog类。继承AlertDialog。里面的注释小弟都写上啦。这里就不多做介绍

MainActivity类:

public class MainActivity extends Activity implements OnClickListener,

RollCallBack {

private Button but;

private TextView tvyears, tvmonth, tvday;

String years, month, day;

private RollPickerDialog pickerDialog;// 日期选择器

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.fragment_main);

pickerDialog = new RollPickerDialog(MainActivity.this, this);

but = (Button) findViewById(R.id.but);

tvyears = (TextView) findViewById(R.id.tv_years);

tvmonth = (TextView) findViewById(R.id.tv_month);

tvday = (TextView) findViewById(R.id.tv_day);

but.setOnClickListener(this);

}

@Override

public void onClick(View v) {

if (v == but) {

setData();

pickerDialog.SetData(

0,

"选择生日",

new int[] { 1950,

Integer.parseInt(Util.getTodayYearTime()) },

Integer.parseInt(years) - 1950,

new int[] { 1, 12 }, Integer.parseInt(month),

new int[] { 1, 31 }, Integer.parseInt(day));

pickerDialog.show();

}

}

/**

* 获取TextView控件上的值。确保下次选择的时间正确

*/

private void setData() {

years = tvyears.getText().toString();

month = tvmonth.getText().toString();

day = tvday.getText().toString();

if (years.equals("") || years != null) {

years = "1990";

}

if (month.equals("") || month != null) {

month = "0";

}

if (day.equals("") || day != null) {

day = "0";

}

}

/**

*得到控件选择的时间

*/

@Override

public void setResaultRoll(int select1, int select2, int select3) {

try {

// 提交年龄

StringBuffer sb = new StringBuffer();

sb.append(select1).append(select2 < 10 ? "0" + select2 : select2)

.append(select3 < 10 ? "0" + select3 : select3);

String date = sb.toString();

if (Util.isGetTimebeforeNow(date)) {

years = date;

tvyears.setText(String.valueOf(select1)+"年");

tvmonth.setText(String.valueOf(select2)+"月");

tvday.setText(String.valueOf(select3)+"日");

} else {

Toast.makeText(getApplicationContext(), "选择的日期大于当前日期了", 1)

.show();

}

pickerDialog.dismiss();

} catch (Exception e) {

// TODO: handle exception

}

}

主要的说下pickerDialog.SetData这个方法。里面需要传入的参数:


我这里传入的参数是:0,"选择生日",new int[] { 1950,Integer.parseInt(Util.getTodayYearTime()) },Integer.parseInt(years) - 1950,new int[] { 1, 12 }, Integer.parseInt(month),new int[] { 1, 31 }, Integer.parseInt(day));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: