1. main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/starttime"/>

<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/starttime"/>

<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/endstime"/>

<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/endtime"/>

</LinearLayout>

2.strings.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">日期控件使用</string>
<string name="starttime">开始时间</string>
<string name="endstime">结束时间</string>
</resources>

3.activity文件

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.DatePicker;
import android.widget.EditText;

public class MainActivity extends Activity {

private EditText startText;

private EditText endText;

private Calendar cdar=Calendar.getInstance();
private int mYear=cdar.get(Calendar.YEAR);
private int mMonth=cdar.get(Calendar.MONTH);
private int mDay=cdar.get(Calendar.DATE);


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startText=(EditText)findViewById(R.id.starttime);
endText=(EditText)findViewById(R.id.endtime);

//注册点击时间的监听
startText.setOnClickListener(new MyOnClickListener(startText.getId()));
endText.setOnClickListener(new MyOnClickListener(endText.getId()));

//焦点改变时的监听
startText.setOnFocusChangeListener(new MyOnFocusChangeListener(startText.getId()));
endText.setOnFocusChangeListener(new MyOnFocusChangeListener(endText.getId()));

}

// 隐藏手机键盘
private void hideIM(View edt){
try {
InputMethodManager im = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
IBinder windowToken = edt.getWindowToken();
if (windowToken != null) {
im.hideSoftInputFromWindow(windowToken, 0);
}
}catch (Exception e) {
e.printStackTrace();
}
}

/**
* 创建要显示的对话框
*/
protected Dialog onCreateDialog(int id) {

switch (id) {
case R.id.starttime:
return new DatePickerDialog(this, new MyOnDateSetListener(id), mYear, mMonth, mDay);
case R.id.endtime:
return new DatePickerDialog(this, new MyOnDateSetListener(id), mYear, mMonth, mDay);
}
return null;
}


/**
* 点击事件的监听
* @author sweet
*
*/
private final class MyOnClickListener implements OnClickListener{
private int pointId;
public MyOnClickListener(int id){
this.pointId=id;
}
@Override
public void onClick(View v) {
hideIM(v);
showDialog(pointId);
}

}

/**
* 焦点改变时的监听对象
* @author sweet
*
*/
private final class MyOnFocusChangeListener implements OnFocusChangeListener{
private int pointId;
public MyOnFocusChangeListener(int id){
this.pointId=id;
}

@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
hideIM(v);
showDialog(pointId);
}
}

}

/**
* 选择日期控件
* @author sweet
*
*/
private final class MyOnDateSetListener implements OnDateSetListener{
private int pointId;
public MyOnDateSetListener(int id){
this.pointId=id;
}

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
String mm = monthOfYear<=9 ? "0" + (monthOfYear + 1) : String.valueOf(monthOfYear + 1);
String dd=dayOfMonth <= 9 ? "0" + dayOfMonth : String.valueOf(dayOfMonth);
((EditText)findViewById(pointId)).setText(String.valueOf(year) + "-" + mm + "-" + dd);
}
}
}

更多相关文章

  1. 全局窗口一
  2. android输入法控制显示
  3. android异步操作AsyncTask编写文件查看器
  4. android语音识别之科大讯飞语音API的使用
  5. android之纵横屏幕切换时保存数据
  6. android 之 选择文件
  7. android屏幕 像素 DP 相关计算
  8. Android腾讯微薄客户端开发十四:首页menu菜单
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android测试之Monkey原理及源码分析(一)
  2. Android(安卓)布局简介
  3. Android各个技术学习集
  4. android 8.0 自定义控件onmesure获取宽度
  5. LinearLayout 分割线
  6. 使用MAT分析应用的内存信息
  7. Android侧滑菜单之DrawerLayout用法详解
  8. Linux下使用android ndk编译FFmpeg(最新版
  9. Android4.0.3修改启动动画和开机声音
  10. Android(安卓)Studio NDK&Jni开发--MD5加