为了账号安全,请及时绑定邮箱和手机立即绑定

使用对话框形式修改时间时页面中的日期和时间没有改变

在使用对话框的形式修改日期和时间时,标题部分的日期和时间确实发生了改变,但是页面中的日期和时间并没有变。想知道如何才能让页面中的日期和时间也相应的进行改变。

正在回答

5 回答

        修改向下图一样的部分,就可以实现在弹出的对话框设置时间和日期后,Activity上的DataPicker和Timepicker两个控件的时间自动更改为在对话框中设置的时间。(为了清晰,我把修改标题栏显示时间那的代码注释了)。

http://img1.sycdn.imooc.com//57c7c8a600010baf07450509.jpg

1 回复 有任何疑惑可以回复我~
#1

qq_过好今天_0 提问者

ok了,多谢
2016-09-01 回复 有任何疑惑可以回复我~
#2

li_zhuo 回复 qq_过好今天_0 提问者

不谢,小事
2016-09-03 回复 有任何疑惑可以回复我~

package com.example.datetime;


import java.util.Calendar;


import android.app.Activity;

import android.app.DatePickerDialog;

import android.app.DatePickerDialog.OnDateSetListener;

import android.app.TimePickerDialog;

import android.app.TimePickerDialog.OnTimeSetListener;

import android.os.Bundle;

import android.text.style.UpdateLayout;

import android.widget.DatePicker;

import android.widget.DatePicker.OnDateChangedListener;

import android.widget.TimePicker;

import android.widget.TimePicker.OnTimeChangedListener;


public class MainActivity extends Activity {

private TimePicker time;

private DatePicker date;

private Calendar cal;

private int year;

private int month;

private int day;

private int hour;

private int minute;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        //获取日历的一个对象

        cal = Calendar.getInstance();

        //获取年月日时分的信息

        year = cal.get(Calendar.YEAR);

        month = cal.get(Calendar.MONTH)+1;

        day = cal.get(Calendar.DAY_OF_MONTH);

        hour = cal.get(Calendar.HOUR_OF_DAY);

        minute = cal.get(Calendar.MINUTE);

        setTitle(year+":"+month+":"+day+":"+hour+":"+minute);

        date = (DatePicker) findViewById(R.id.date);

        time = (TimePicker) findViewById(R.id.time);

        //初始化datePicker

        date.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {

@Override

public void onDateChanged(DatePicker arg0, int year, int month, int day) {

setTitle(year+":"+(month+1)+":"+day+":"+hour+":"+minute);

}

});

        //初始化timePicker

        time.setOnTimeChangedListener(new OnTimeChangedListener() {

@Override

public void onTimeChanged(TimePicker arg0, int hour, int minute) {

setTitle(year+":"+month+":"+day+":"+hour+":"+minute);

}

});

        new DatePickerDialog(this, new OnDateSetListener() {

@Override

public void onDateSet(DatePicker arg0, int year, int month, int day) {

setTitle(year+":"+(month+1)+":"+day+":"+hour+":"+minute);

}

}, year, cal.get(Calendar.MONTH), day).show();

        new TimePickerDialog(this, new OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker arg0, int hour, int minute) {

setTitle(year+":"+month+":"+day+":"+hour+":"+minute);

}

}, hour, minute,true).show();

    }

}


0 回复 有任何疑惑可以回复我~

        1.我这里简单的写了点击按钮更新DatePicker时间的代码:你可以将点击事件触发更新改成对话框里时间日期发生变化事件去触发。

        2.你可以将  datapicker对象.updateDate(,,,);这一句添加到触发标题栏内容改变那一段代码里,就可以在更改标题栏内容的同时修改DatePicker控件的日期。

        3.如果要更新TimePicker的时间使用public void setCurrentHour(Integer currentHour);            //设置当前时间的小时。 public void setCurrentMinute(Integer currentMinute);      //设置当前时间的分钟

final DatePicker dataPicker = (DatePicker) findViewById(R.id.datePicker1);
        Button btn = (Button) findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                //是一个DataPicker对象
                dataPicker.updateDate(2001, 0, 1);
            }
        });
按钮点击前画面:

http://img1.sycdn.imooc.com//57c6ac1200019a6a04020293.jpg

按钮点击后画面:

http://img1.sycdn.imooc.com//57c6ac400001afaa03980298.jpg

0 回复 有任何疑惑可以回复我~
#1

li_zhuo

实在不明白的话可以将代码发给我,我能修改到你要得效果就帮你改,然后你自己再体会
2016-08-31 回复 有任何疑惑可以回复我~
#2

qq_过好今天_0 提问者 回复 li_zhuo

我把代码发了一下,你帮我修改一下吧,在点击使用对话框的形式修改日期和时间时,让DatePicker和TimePicker两个控件的日期直接发生改变,不另外添加更新用的button
2016-09-01 回复 有任何疑惑可以回复我~

public void updateDate(int year,int month,int dayOfMonth);    //更新当前日期

0 回复 有任何疑惑可以回复我~
#1

qq_过好今天_0 提问者

是新定义的方法还是重写父类的方法,不知道怎么用,没弄出来
2016-08-31 回复 有任何疑惑可以回复我~

您需要说的详细一点,需要改变哪的显示

0 回复 有任何疑惑可以回复我~
#1

qq_过好今天_0 提问者

使用对话框的形式修改日期和时间时,让DatePicker和TimePicker两个控件的日期也发生改变
2016-08-31 回复 有任何疑惑可以回复我~
#2

li_zhuo 回复 qq_过好今天_0 提问者

使用这个方法 public void updateDate(int year,int month,int dayOfMonth);   //更新当前日期
2016-08-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111161    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

使用对话框形式修改时间时页面中的日期和时间没有改变

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信