您的位置:首页 > 产品设计 > UI/UE

AndroidUI基础之 TimePickerDialog与 Timpicker 等简单的使用

2016-01-14 11:07 591 查看
在Android程序中,我们有时候需要设置时间,这时需要使用TimerPicker来设置时间,使用DatePicker来设置日期下面分别介绍具体的使用方法。

一:TimerPicker 的使用

1:效果图:



首先声明一个类 ,用来显示时间对话框并且该类继承DialogFragement 并实现TimePickerDialog.OnTimeSetListener(对话框中完成按钮的事件监听器)接口。

在public Dialog onCreateDialog(Bundle savedInstanceState) 方法中,完成日期的获取,以及对话框的绘制,最后重写 onTimeSet(TimePicker view, int hourOfDay, int minute) 该方法用于保存修改后的时间。

完整代码如下:

public class TimePickerFragement extends DialogFragment implements TimePickerDialog.OnTimeSetListener {

int hour;

int minute;

private MainActivity mainActivity;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 通过getActivity方法获取该Fragement所依赖的Activity对象

mainActivity = (MainActivity) getActivity();

}

@Override

// 事件方法当显示 Dialog 时会调用该方法 (返回一个Dialog)

// 创建对话框,该方法会在MainActivity的按钮中调用show方法时,会检查是否已经存在Dialog,当不存在时会直接创建,否则直接显示。

public Dialog onCreateDialog(Bundle savedInstanceState) {

// 获取系统当前的事时间

Calendar c = Calendar.getInstance();

hour =c.get(Calendar.HOUR_OF_DAY);

minute=c.get(Calendar.MINUTE);

// 第一个参数为上下文,OnTimeSetListener callBack , int hour,int minute, 是否设置为24小时制

TimePickerDialog dialog = new TimePickerDialog(getActivity(),this, hour,minute,true);

return dialog;

}

// 用户自己设置时间(点击完成后设置时间)

@Override

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

this.hour=hourOfDay;

this.minute = minute;

// 把用户设置的时间显示到组件上

mainActivity.setTimeValue (hour, minute);

}

}

布局文件中声明一个TextView 与一个按钮,点击按钮弹出对话框,开始设置时间。

在MainActivity中实例化TimePickerFragement ,调用show()显示对话框 。

public class MainActivity extends AppCompatActivity {

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.text_time);

}

public void setTimeValue(int hour, int minute) {

tv.setText(hour + ":" + minute);

}

public void set_time(View view) {

TimePickerFragement fragment = new TimePickerFragement();

fragment.show(getFragmentManager(), "Timepicker");

}

}

DatePicker的使用

效果如下:



使用与TimePicker 基本相似,首先也得尚明一个类继承自DialogFragement,并且实现DatePickerDialog.OnDateSetListener ,在public Dialog onCreateDialog(Bundle savedInstanceState) 方法中,完成日期的获取,以及对话框的绘制,最后重写 onDateSet(TimePicker view, int hourOfDay, int minute) 该方法用于保存修改后的日期。

具体代码如下:

public class DatePickerFragement extends DialogFragment implements DatePickerDialog.OnDateSetListener{

private Main2Activity main2Activity;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

main2Activity = (Main2Activity) getActivity();

}

// 创建日期对话框

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

Calendar c = Calendar.getInstance();

int year=c.get(Calendar.YEAR);

int month =c.get(Calendar.MONTH);

int day=c.get(Calendar.DAY_OF_MONTH);

DatePickerDialog pickerDialog = new DatePickerDialog(getActivity(),this,year,month,day);

return pickerDialog;

}

@Override

public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

main2Activity.set_dateValue(year,monthOfYear,dayOfMonth);

}

}

布局文件与上面相同 声明一个按钮(加载显示对话框)与一个TextView(显示修改后的日期),

在MianActivty 中代码如下:

public class Main2Activity extends AppCompatActivity {

private TextView tv ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mian2);

tv = (TextView)findViewById (R.id.textView_date);

}

public void set_dateValue (int year , int month , int day){

tv.setText(year+"年"+(month+1)+"月"+day+"日");

}

/*

设置日期的时间按钮

*/

public void setDate_click (View view){

DatePickerFragement pickerFragement = new DatePickerFragement();

pickerFragement.show(getFragmentManager(),"dataPicker");

}

}

在android中还提供了组件的方式来加载时间与日期 ,分别为TimePicker 与DatePicker 使用比较简单如下:

TimePicker 的使用:

效果如下:



布局文件中

使用TimePicker组件,并且添加一个按钮当点击按钮的时候显示,滚动框上当前的时间并使用Toast打印出来。

如下:

<TimePicker

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/timePicker"

android:layout_alignParentStart="true" />

在MainActivity中声明组件通过响应的方法可以获取时间

private TimePicker picker;

picker=(TimePicker) findViewById(R.id.timePicker);

public void save_click (View view){

int hour=picker.getCurrentHour();

int minute=picker.getCurrentMinute();

Toast.makeText(this,hour+":"+minute,Toast.LENGTH_SHORT).show();

}

DatePicker 的使用

效果图如下:



DatePicker

在布局文件中,使用DatePicker组件,并添加一个按钮用于显示当前滚动框与目录上的时间。

在MainActivity中声明组件通过响应的方法可以获取时间并且打印输出。

public void save_click (View view){

int hour=picker.getCurrentHour();

int minute=picker.getCurrentMinute();

Toast.makeText(this,hour+":"+minute,Toast.LENGTH_SHORT).show();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: