在AndroidApp应用中,设置日期和时间时间也是经常遇见的,下面我们一起学习一下。

  我们需要学习Android中的基本控件:(1)日期选择控件DatePicker (2)时间选择控件TimePicker。


一、设计登录窗口

  打开“res/layout/activity_main.xml”文件。

   1、分别从工具栏向activity拖出1个日期选择控件DatePicker、 1个时间选择控件TimePicker、1个按钮Button。控件来自Time&Date、Form Widgets。

20151023160726762



2、打开activity_main.xml文件。

  我们把自动生成的代码修改成如下代码,具体为:

  (1)DatePicker的id修改为tody。

  (2)TimePicker的id修改为now;

  (3)Button的id修改为save,其文本修改为"保存"。

二、单击事件 

  打开“src/com.genwoxue.datepickertimepicker/MainActivity.java”文件。

  然后输入以下代码:

20151023160936903



我们着重分析一下带有浅蓝色背景部分。

  1、第①部分

  导入与DatePicker与TimePicker相关的2个包。

  2、第②部分

  声明3个控件变量。

  3、第③部分

  (1)findViewById()方法完成3个控件的捕获。

  (2)“保存”按钮添加单击监听事件:btnSave.setOnClickListener(new SaveOnClickListener())。

  4、第④部分

  getYear()、getMonth()、getDayOfMonth()方法获取年、月、日。

  5、第⑤部分

  getCurrentHour()、getCurrentMinute()方法获取时、分。

  6、第⑥部分

  使用Toast显示日期DatePicker、时间TimePicker控件选择的日期与时间。

  效果如下:

20151023161024822


三、附代码

  1、activity_main.xml源码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <TimePicker
        android:id="@+id/now"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/today"
        android:layout_alignParentLeft="true" />


    <Button
        android:id="@+id/save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/now"
        android:text="@string/save" />


    <DatePicker
        android:id="@+id/today"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />
         


</RelativeLayout>



2、MainActivity.java源码

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;


public class MainActivity extends Activity {
private DatePicker dpToday = null;
private TimePicker tpNow = null;
private Button btnSave = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dpToday = (DatePicker) super.findViewById(R.id.today);
tpNow = (TimePicker) super.findViewById(R.id.now);
btnSave = (Button) super.findViewById(R.id.save);
btnSave.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
int iYear = 0;
int iMonth = 0;
int iDay = 0;
String sDate = "";
iYear = dpToday.getYear();
iMonth = dpToday.getMonth()+1;//记得加1

iDay = dpToday.getDayOfMonth();
sDate = "日期:"+String.valueOf(iYear)+"年"+String.valueOf(iMonth)+"月"+String.valueOf(iDay)+"日";
int iHour = 0;
int iMin = 0;
String sTime = "";
iHour = tpNow.getCurrentHour();
iMin = tpNow.getCurrentMinute();
sTime = "时间:"+String.valueOf(iHour)+"时"+String.valueOf(iMin)+"分";
Toast.makeText(getApplicationContext(), sDate+sTime, Toast.LENGTH_LONG).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;
}
}