繁体   English   中英

当我将时间设置为12:00或00:00时,Time Picker不起作用,其显示的是AM而不是Pm

[英]Time Picker is not working when i set time 12:00 or 00:00 its displaying AM instead Pm

当我选择12:00或我选择0:00时,它仅显示AM,而不是PM尝试了很多,但未获得所需的输出,我在堆栈溢出中搜索了相同的问题,但未获得输出。

这里完整的代码如下:

main.java

     package com.Weal.sachin.omcom;

import android.content.DialogInterface;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import java.util.Calendar;
import  java.util.Locale;
import android.view.ViewGroup;
import android.widget.EditText;
import  android.app.TimePickerDialog;
import android.widget.TimePicker;

public class Daily_Task extends Fragment {
public Daily_Task(){};
    boolean isFromClicked = false;
    boolean morning = true;

    private int hour;
    private int minute;
    String addtask, adddetail, addstart, addend;
    static final int TIME_DIALOG_ID = 999;
View view;
    EditText starttime;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_daily__task, container, false);
        getActivity().setTitle("Task");
        starttime = (EditText) view.findViewById(R.id.start_time);
        setCurrentTimeOnView();
        addListenerOnButton();

        return view;
    }


        // display current time
    public void setCurrentTimeOnView() {

//        starttime= (EditText)view.findViewById(R.id.start_time);
        //  timePicker1 = (TimePicker) findViewById(R.id.timePicker1);

        final Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR);
        minute = c.get(Calendar.MINUTE);

        // set current time into textview
        starttime.setText(getTimeText(hour, minute));

        // set current time into timepicker
        //timePicker1.setCurrentHour(hour);
        //timePicker1.setCurrentMinute(minute);
    }

    public void addListenerOnButton() {
      //  starttime = (EditText) view.findViewById(R.id.start_time);

        starttime.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                showTimePickerDialog();
                isFromClicked = false;
            }

        });

    }
    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int selectedHour,
                              int selectedMinute) {
            hour = selectedHour;
            minute = selectedMinute;
            // set current time into textview
            if (isFromClicked)
                starttime.setText(getTimeText(hour, minute));
            else{

            }
                //btnChangeTime.setText(getTimeText(hour, minute));
            // set current time into timepicker
            //   timePicker1.setCurrentHour(hour);
            // timePicker1.setCurrentMinute(minute);
        }
    };

    private void showTimePickerDialog() {
        new TimePickerDialog(getContext(), timePickerListener, hour, minute, true).show();
    }

    private String getTimeText(int hourOfDay, int minute) {
        int hour = hourOfDay % 12;
        if (hour == 0) hour = 12 ;

//then
        if (hour >=12 && hour <  24) morning = false;
        else morning = true;
        String _AM_PM = (hourOfDay > 12) ? "PM" : "AM";

        return String.format(Locale.getDefault(), "%02d:%02d %s", hour, minute, _AM_PM);
    }
} 

我试过了这段代码,现在对我来说很完美:-

TimePicker.java

    package com.Weal.sachin.omcom;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.TimePickerDialog;
import android.icu.text.SimpleDateFormat;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TimePicker;

import java.util.Calendar;
import java.util.Date;

/**
 * Created by sachin on 2/2/2017.
 */

public class TImePickerEndTime 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);

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

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

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

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

        // Return the TimePickerDialog
        return tpd;
    }

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

        String am_pm = "";
        String tm = new SimpleDateFormat("HH:mm").format(new Date(hourOfDay));
        Calendar datetime1 = Calendar.getInstance();
        datetime1.set(Calendar.HOUR_OF_DAY, hourOfDay);
        datetime1.set(Calendar.MINUTE, minute);

        String strDate = tm.format(String.valueOf(datetime1.getTime()));


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

        String strHrsToShow1 = (datetime1.get(Calendar.HOUR) == 00)?"12":datetime1.get(Calendar.HOUR)+"";
      //  ((EditText)getActivity().findViewById(R.id.End_time)).setText(String.format("%02d:%02d", strHrsToShow1, datetime1.get(Calendar.MINUTE) + "") +" "+am_pm);
    //   ((EditText)getActivity().findViewById(R.id.End_time)).setText(String.format("%02d:%02d", strHrsToShow1, datetime1.get(Calendar.MINUTE)));
        /*((EditText)getActivity().findViewById(R.id.End_time)
        ).setText( String.format("%02d:%02d", strHrsToShow1, datetime1.get(Calendar.MINUTE) + "") +" "+am_pm);
*/

        int hour = hourOfDay % 12;
        ((EditText) getActivity().findViewById(R.id.End_time)).setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
                minute, hourOfDay < 12 ? "am" : "pm"));

    }
}

现在在Main.java中

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

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

        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM