咱们先在简单地XML给显示日期弹出日期分别加个控件。

        

将这样显示:

 

接下来是在Main_Activity.java文件里对控件的操作:

package com.example.dateexp;import java.util.Calendar;import android.app.Activity;import android.app.DatePickerDialog;import android.app.Dialog;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.DatePicker;import android.widget.TextView;public class MainActivity extends Activity {int tyear,tmonth,tday;//年月日TextView display_date;Button boom_date;final int DATA_DIOLOG = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);display_date = (TextView)findViewById(R.id.dispaly_date);boom_date = (Button)findViewById(R.id.boom_date);boom_date.setOnClickListener(new OnClickListener() {public void onClick(View v) {showDialog(DATA_DIOLOG);//显示日期窗口}}); final Calendar ca = Calendar.getInstance();//实例个日历 tyear = ca.get(Calendar.YEAR);     tmonth = ca.get(Calendar.MONTH);     tday = ca.get(Calendar.DAY_OF_MONTH);}protected Dialog onCreateDialog(int id) {        switch (id) {            case DATA_DIOLOG:                return new DatePickerDialog(this, mdateListener, tyear, tmonth, tday);        }        return null;    }//  设置日期 利用StringBuffer追加    public void display() {        display_date.setText(new StringBuffer().append(tyear).append("年").append(tmonth + 1).append("月").append(tday).append("日"));    }//textview控件显示格式    //监听(DatePickerDialog为系统自带日历)    private DatePickerDialog.OnDateSetListener mdateListener = new DatePickerDialog.OnDateSetListener() {        @Override        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {            tyear = year;            tmonth = monthOfYear;            tday = dayOfMonth;            display();//textview控件显示        }    };}

然后运行:

这就成功给Activity添加了一个简单的日历选择器。

那我们怎么使得APP一打开,TextView就显示现在的日期呢?

直接在onCreate里面添加以下代码即可:

String DateString = DateFormat.getDateInstance().format(new Date());display_date.setText(DateString);//默认显示当前日期

部分如图:

下面来记录添加这个日历时遇到的问题:

1.为什么要设置变量final int DATA_DIOLOG = 1?(从文中的showDialog(int id)、onCreateDialog(int id)解释)

答:showDialog(int id):当你想要显示一个对话框时,调用showDialog(int id) 方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id)相同的ID。所以这里就对应了onCreateDialog(int id)方法的case后面的id。

onCreateDialog(int id)是什么:当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。(所以当你使用这个函数的时候,它将挂起多个对话框,然后当你触发的showDialog里面的ID对应上其case后面的id,那么相应的对话框将弹出。)

综合上面两个函数的解释,那就可以解释为何定义int DATA_DIOLOG = 1了。它就是个窗口的标识。

 

更多相关文章

  1. 【Android(安卓)开发教程】设置Activity的样式和主题
  2. Android(安卓)M新控件知识整理
  3. android 组件之 alertDialog
  4. Android(安卓)中与 Touch 事件详解
  5. android对话框之AlertDialog.Builder类的setSingleChoiceItems
  6. android scrollview的所有touchevent的顺序
  7. Android优秀开源库1000+,你值得拥有
  8. android 5.0的颜色
  9. Android(安卓)ScrollView的具体使用

随机推荐

  1. Android--数据持久化之内部存储、Sdcard
  2. [Android入门]1. Android开发环境搭建
  3. Android中使用Movie显示gif动态图
  4. 全面解析Activity的生命周期
  5. Android布局文件属性
  6. 解决Android studio升级到3.5的一些问题
  7. Android中SQLite数据库介绍
  8. 温馨提示:Android(安卓)的 XML 文件是是区
  9. Google提供更好的Android应用程序翻译服
  10. 《Android第一行代码》书籍划重点记录