如何在 2 个不同的 EditText 中设置 2 个时间选择器? [英] How to set 2 timepicker in 2 different EditText?

查看:23
本文介绍了如何在 2 个不同的 EditText 中设置 2 个时间选择器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在两个 EditText 中设置两个 TimePicker 但是当我选择任何时间选择器时,它会在两个 EditText 中显示相同的时间.

I want to set two TimePicker in Two EditText but when i select any Time Picker it will display the same time in Both EditText.

为了.例如:当我选择 Starttime(EditText) TimePicker 然后它也会在 Endtime(EditText) 中自动设置.

for. ex: when i select Starttime(EditText) TimePicker then it will set automatically in Endtime(EditText) too.

这里是代码:-

ma​​in.java

starttime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Initialize a new time picker dialog fragment
                DialogFragment dFragment = new TimePickerFragment();

                // Show the time picker dialog fragment
                dFragment.show(getActivity().getFragmentManager(),"Time Picker");
                isFromClicked = false;
            }
        });
        endtime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Initialize a new time picker dialog fragment
                DialogFragment dFragment1 = new TimePickerFragment();

                // Show the time picker dialog fragment
                dFragment1.show(getActivity().getFragmentManager(),"Time Picker");
                isFromClicked = true;

            }
        });

TimePickerFragment.java

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener{

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){
        // Get a Calendar instance
        final Calendar calendar = Calendar.getInstance();
        // Get the current hour and minute
        int hour = calendar.get(Calendar.HOUR);
        int minute = calendar.get(Calendar.MINUTE);


        // TimePickerDialog Theme : THEME_DEVICE_DEFAULT_LIGHT
        TimePickerDialog tpd = new TimePickerDialog(getActivity(),
                AlertDialog.THEME_DEVICE_DEFAULT_LIGHT,this,hour,minute,false);


        // Return the TimePickerDialog
        return tpd;
    }

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

        String am_pm = "";

        Calendar datetime = Calendar.getInstance();
        datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
        datetime.set(Calendar.MINUTE, minute);

        if (datetime.get(Calendar.AM_PM) == Calendar.AM)
            am_pm = "AM";
        else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
            am_pm = "PM";

        String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+"";

        ((EditText)getActivity().findViewById(R.id.start_time)).setText( strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm );

        ((EditText)getActivity().findViewById(R.id.End_time)).setText( strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm);

    }
}

推荐答案

使用此类作为时间选择器.我已经使用了它,它适用于 2 个编辑文本

Use this class for time picker. I have used it and it works for 2 editexts

    public class TimePicker extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
    TextView textView;
    Context context;
    private TimePickerDialog timePickerDialog;

    public TimePicker(EditText text, Context context) {
        this.text= textView;
        this.context = context;
    }

    public TimePicker() {
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Create a new instance of TimePickerDialog and return it
        return new TimePickerDialog(getActivity(), this, hour, minute,
                DateFormat.is24HourFormat(getActivity()));
    }

    @Override
    public void onTimeSet(android.widget.TimePicker view, int hourOfDay, int minute) {
        Time t = new Time(hourOfDay,minute,0);//seconds by default set to zero
        Format formatter;
        formatter = new SimpleDateFormat("h:mm a", Locale.ENGLISH);
        String time = formatter.format(t);
          textView.setText(hourOfDay+":"+minute);
    }

}

用法:

TimePicker timePicker = new TimePicker(editTextName, getActivity());
timePicker.show(getActivity().getSupportFragmentManager(), "Start Time");

这篇关于如何在 2 个不同的 EditText 中设置 2 个时间选择器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆