【Android 开发】:UI控件之时间和日期对话框控件的的使用(四)

    上一讲我们讲解了ProgressDialog的对话框的操作,这一讲我们来讲解一下日期和时间的对话框的操作

1. DatePickerDialog 日期对话框的操作

    查看 DatePickerDialog 的API文档,它也是继承关系如下所示:
DatePickerDialog extends AlertDialog
    implements DialogInterface.OnClickListener DatePicker.OnDateChangedListener
构造方法如下:
public DatePickerDialog (Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
Context context:上下文对象
DatePickerDialog.OnDateSetListener callBack 第二个参数表示,当点击改变日期时,会触发这个回调
int year, int monthOfYear, int dayOfMonth 初始化年月日


2. TimePickerDialog 时间对话框的操作

时间对话框与日期对话框的操作类似。
public TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)
    最后一个参数,表示选择二十四小时的形式,或者分为上午/下午的形式
    is24HourView    Whether this is a 24 hour view, or AM/PM.

3. 程序代码

public class MainActivity extends Activity {

    private Button button;
    private Button button2;
    // 初始化年月日
    private int year;
    private int monthOfYear;
    private int dayOfMonth;
    
    // 初始化时间
    private int hourOfDay;
    private int minute;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initComponent();
        // 初始化年月日
        Calendar calendar = Calendar.getInstance();
        year = calendar.get(Calendar.YEAR);
        monthOfYear = calendar.get(Calendar.MONTH);
        dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
        
        // 初始化时间
        hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);

        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this,
                        new OnDateSetListener() {
                            //当选中日期时候会触发这一个效果
                            @Override
                            public void onDateSet(DatePicker view, int year, int monthOfYear,
                                    int dayOfMonth) {
                                // TODO Auto-generated method stub
                                String str = year + "年-" + monthOfYear + "月-" + dayOfMonth + "日";
                                Toast.makeText(MainActivity.this, str, 3).show();

                            }
                        }, year,
                        monthOfYear, dayOfMonth);
                datePickerDialog.show();
            }
        });
        
        
        button2.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {
                    
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        // TODO Auto-generated method stub
                        String str1 = hourOfDay + "时-" + minute + "分";
                        Toast.makeText(MainActivity.this, str1, 3).show();
                    }
                }, hourOfDay, minute, true);
                timePickerDialog.show();
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    private void initComponent() {
        button = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
    }

}

4. 执行过程

       
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值