【android】只有小时和分钟的弹出式时间选择器

来源:互联网 发布:ubuntu卸载自带输入法 编辑:程序博客网 时间:2024/05/16 17:03

一、这是什么鬼

在最近的项目中需要用到一个只选择小时和分钟的时间选择器,在网上看了以后发现没有合适的,于是自己参考了一些例子后写了一个,并把它发上来,有需要的可以参考。另外本人也是弱菜,欢迎大家指教。下面上效果图:
这里写图片描述

二、这有什么用

MainActivity有一个EditText,点击以后弹出时间选择器,选择后时间会出现到EditText里。当然大家还能自己拿去修改,得到不同的效果。

三、这该怎么写

1)先在activity_main.xml中写布局。

<EditText android:id="@+id/edit"      android:layout_width="fill_parent"       android:layout_height="wrap_content"      android:editable="false"      android:cursorVisible="false"      />

2)接着,写弹出的时间选择器的布局time_dialog.xml,由于是demo就不管布局的美观了哈~

<TextView        android:layout_width="match_parent"       android:layout_height="wrap_content"       android:text="请选择日期和时间"      />    <!-- 定义一个TimePicker组件 -->    <TimePicker android:id="@+id/time_picker"      android:layout_width="wrap_content"       android:layout_height="100dp"      android:layout_gravity="center_horizontal"      />    <Button        android:id="@+id/time_sure"        android:layout_width="wrap_content"         android:layout_height="wrap_content"        android:layout_gravity="center"        android:text="确定"        />

3)到MainActivity中完成剩余部分代码。

public class MainActivity extends Activity{          private int hour;          private int minute;          private String time1;          private String time2;          private String dateStr;          private EditText editText;          private AlertDialog dialog;    @SuppressLint("SimpleDateFormat")    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        editText=(EditText)findViewById(R.id.edit);        editText.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View v) {                dialog = new AlertDialog.Builder(MainActivity.this).create();                dialog.show();                dialog.getWindow().setContentView(R.layout.time_dialog);                Calendar c = Calendar.getInstance();                hour = c.get(Calendar.HOUR);                minute = c.get(Calendar.MINUTE);                ((TimePicker) dialog.getWindow().findViewById(R.id.time_picker)).setIs24HourView(true);                ((TimePicker) dialog.getWindow().findViewById(R.id.time_picker)).setOnTimeChangedListener(new OnTimeChangedListener()                {                public void onTimeChanged(TimePicker view, int hourOfDay, int minute)                  {                    MainActivity.this.hour = hourOfDay;                    MainActivity.this.minute = minute;                    time1=Integer.toString(MainActivity.this.hour);                    time2=Integer.toString(MainActivity.this.minute);                    dateStr=time1+":"+time2;                    Log.i("time-------------->",""+dateStr);                  }                });                dialog.getWindow().findViewById(R.id.time_sure).setOnClickListener(new OnClickListener(){                    @Override                    public void onClick(View v) {                        SimpleDateFormat df = new SimpleDateFormat("HH:mm");                          try {                             df.parse(time1+":"+time2);                        } catch (ParseException e) {                            e.printStackTrace();                        }                        editText.setText(dateStr);                        dialog.dismiss();                    }});                }            });        }}

四、备注补充

本人也是弱菜一枚~,若有什么不足或者错误的地方,希望大家能多多指教。

0 0
原创粉丝点击