-
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);
}
}
}
相关推荐
在Android开发中,日期时间选择控件是用户界面中常见且重要的组成部分,它允许用户方便地选择日期或时间。在Android SDK中,内置了DatePicker和TimePicker两种原生控件,但有时候,开发者可能需要更加强大、定制化的...
在Android开发中,日期区间选择控件是一种常用的用户界面组件,尤其在预订系统、日程管理等场景下不可或缺。本文将深入探讨如何实现一个能够选取年月区间的自定义控件,以及涉及到的相关技术点。 首先,我们需要...
在Android开发中,时间日期控件是用户界面中常见的组件,用于让用户选择日期或时间。在本示例中,我们关注的是如何在Android应用中添加并使用这些控件。我们将探讨如何通过添加按钮来触发日期和时间的选择,并将选定...
【标题】"H5 IOS Android 通用日期控件"指的是一个可以跨平台使用的HTML5(H5)组件,它能够为iOS和Android设备提供统一的日期选择功能。这个控件通常是一个JavaScript库或者CSS框架,使得开发者在创建Web应用时,...
在Android开发中,日历控件是经常被用于创建日期选择功能的重要组件,尤其是在预订、计划等场景下,用户需要设定一个开始时间和结束时间。"android 日历控件 可选开始时间结束时间"这个标题所提及的就是这样一个特定...
在"android 用户自定义日期控件 可拖动"的描述中,提到了该控件不仅可以显示日期,还可以显示时间,甚至同时显示日期和时间,这意味着它具备较高的灵活性。用户在导入这个控件后,只需运行应用,就能立即查看到其...
在Android应用开发中,UI设计和用户体验是至关重要的部分,其中日期选择控件是一个常见的功能需求,例如在日程安排、生日输入等场景。本文将详细介绍一个名为"Android漂亮的日期选择控件"的资源,它提供了美观且易于...
"Android 非常漂亮的滚动选择日期控件"是一个旨在提供美观、易用的日期选择体验的解决方案。这个控件可能采用了自定义视图或者现有的库,如`DatePicker`或第三方库,如`Material-Design-Libraries`等,来实现滚动...
在给定的“Android 日期选择控件”主题中,我们关注的是一个特别设计的控件,它允许用户通过上下滑动的方式进行交互,并且在选定的日期后会自动显示年、月、日的文字信息,提供了更为直观的视觉反馈。 首先,我们要...
在Android开发中,系统提供了许多内置的UI控件,其中包括日期选择器DatePicker。然而,有时候开发者需要根据项目需求对默认的控件进行自定义,使其更符合应用的风格或者提供更丰富的交互体验。本篇文章将深入探讨...
在Android开发中,为了提供用户友好的交互体验,开发者经常需要自定义各种控件,其中滚轮式日期和时间选择控件是一种常见的需求。这种控件通常用于设置事件的日期和时间,比如日历应用、闹钟设定等场景。本文将深入...
* 从当前Dialog中查找DatePicker子控件 * * @param group * @return */ private DatePicker findDatePicker(ViewGroup group) { if (group != null) { for (int i = 0, j = group.getChildCount();...
在压缩包中的"android日期时间选择控件"可能包含了这样一个自定义控件的源代码。通过研究和使用这个控件,开发者可以学习如何利用自定义视图来解决原生控件的不足,同时也可以根据自己的需求进行二次开发。这可能...
【Android 滚动选择日期控件:DateSlider】是一个为安卓应用开发者设计的独特组件,它提供了一种优雅且直观的方式来让用户选择日期。这个控件不仅具备美观的界面,而且交互方式新颖,用户可以通过触屏滚动来选取所需...
综上所述,创建一个如"RollWeekView"这样的自定义日期选择控件涉及到Android自定义视图、动画、触摸事件处理等多个技术点。通过巧妙地组合这些技术,我们可以构建出一个既实用又美观的UI组件,提升应用的整体体验。...
我们要了解Android中的时间选择通常通过DatePicker控件来完成,但默认的DatePicker会展示日、月、年的全部选项,而这个通用版的控件则只显示年月部分,简化了用户的选择流程,更适合那些只需要选择年月而不关心具体...
7. **列表(ListView/RecyclerView)**:ListView是旧版Android中的列表控件,RecyclerView是现代替代品,用于显示可滚动的项目列表。两者都可以结合Adapter实现数据绑定。 8. **滑动条(SeekBar)**:SeekBar允许用户...
本篇将详细讲解如何封装一个简单的Android日期控件,并探讨其优势以及如何在项目中使用。 首先,我们来看标题提到的"android日期控件"。在Android原生API中,有多种方式来实现日期选择,如DatePickerDialog和...
"android 定制日期控件"和"android 滚动日期控件"的描述,表明我们将探讨如何在Android应用中创建一个可滚动的选择日期的自定义视图。这个控件可能是一个替代系统默认的DatePicker,提供更个性化的交互方式。 日期...