请教关于DatePicker的问题

yiyamzen 2013-11-04 12:00:47
用DatePickerDialog做了日期选择的,做了几天郁闷了所以现在想用DatePicker控件来实现。
功能描述如下,按一个按钮后弹出DatePicker,它有两个按钮“确认”和“取消”。
按“确认”把日期设置到TextView上并关闭弹出的DatePicker,按取消直接关闭DatePicker。
不要用showDialog(DATE_ID);这种方法,编辑器提示该方法已经被废弃了。
我的代码如下,单击按钮弹不出DatePicker窗口。


public class MainActivity extends Activity {
private TextView text;
private Button button;
private DatePicker datepicker;
private LinearLayout mainlayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

text=(TextView)findViewById(R.id.textView1);
button=(Button)findViewById(R.id.button1);

button.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

Calendar calendar=Calendar.getInstance(TimeZone.getDefault());
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);

datepicker=new DatePicker(MainActivity.this);
datepicker.init(year, month, day, new OnDateChangedListener() {

@Override
public void onDateChanged(DatePicker arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub

}

});
//MainActivity已经有layout了,我这样加会不会有问题?
mainlayout=new LinearLayout(MainActivity.this);
//下句报错
//mainLayout.setOrientation(LinearLayout.VERTICAL);
mainlayout.addView(datepicker);

}

});
}
...全文
267 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshixiaonie455 2015-01-19
  • 打赏
  • 举报
回复
亲 4.0以上的该怎么判断,,我去 为什么我遇见一个4.3的系统 android中的日期setCalendarViewShown(false)这个竟然报错,,真是奇葩的盗版手机
chjxcl8888 2014-12-18
  • 打赏
  • 举报
回复
多谢,非常感谢
yiyamzen 2013-11-05
  • 打赏
  • 举报
回复
引用 1 楼 haoxiang12345 的回复:
好好利用Android 的API文档~在里面就可以发现答案了~ https://developer.android.com/guide/topics/ui/controls/pickers.html
我按文档的做了,但是弹出来的日期选择框跟文档里提供的图片不一样。 文档里的有两个按钮,我的只有一个确定按钮。郁闷
yiyamzen 2013-11-05
  • 打赏
  • 举报
回复
自己搞定了。代码贴出来跟大家分享。
android4.0上日期选择只有一个按钮的问题。

public class MainActivity extends Activity {
private Button button;
private int mYear,mMonth,mDay;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);

final DatePicker datepicker = new DatePicker(MainActivity.this);
datepicker.init(mYear, mMonth, mDay, null);
datepicker.setCalendarViewShown(false);

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("日期选项");
//builder.setCancelable(true);
//builder.setCanceledOnTouchOutside(true);
builder.setView(datepicker);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener(){

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
mYear=datepicker.getYear();
mMonth=datepicker.getMonth()+1;
mDay=datepicker.getDayOfMonth();
Toast.makeText(MainActivity.this, mYear+"-"+mMonth+"-"+mDay, Toast.LENGTH_SHORT).show();
}

});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}

});
builder.create().show();
}

});

}
}

yiyamzen 2013-11-05
  • 打赏
  • 举报
回复
请问我用代码创建的DatePicker怎么这样啊?右边多了貌似日历的东东
haoxiang12345 2013-11-04
  • 打赏
  • 举报
回复
好好利用Android 的API文档~在里面就可以发现答案了~ https://developer.android.com/guide/topics/ui/controls/pickers.html

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧