Android: Réglage du temps dans le sélecteur de temps avec l'heure affichée dans la vue du texte

Dans mon application, je montre le temps dans la vue du texte à 19h00. Sur le clic de la vue de texte, une boîte de dialogue de sélection de temps s'affiche. Dans ce choix de temps, je dois montrer exactement le même temps que ce qui apparait dans la visualisation de texte. Mais, je ne comprends pas comment faire cela.

CODE

  • Android: accéder à la base de données SQLite via le fournisseur de contenu ou implémenter DAO?
  • Comment configurer plusieurs balises sur un bouton?
  • Comment gérer la traînée dans une application d'échec Android?
  • GetWritableDatabase () VS getReadableDatabase ()
  • Comment résoudre le SkImageDecoder :: Factory renvoyé null
  • La méthode DSL Gradle n'a pas été trouvée: 'runProguard'
  • SimpleDateFormat sdf = new SimpleDateFormat("HH:mm a"); //int hr = 0; Date date = null; try { date = sdf.parse(resDateArray[3]); } catch (ParseException e) { e.printStackTrace(); } final Calendar calendar = Calendar.getInstance(); calendar.setTime(date); //tp is reference variable for time picker tp.setCurrentHour(calendar.get(Calendar.HOUR)); tp.setCurrentMinute(calendar.get(Calendar.MINUTE)); }//else 

  • Android Studio pense que je construis pour API niveau 1 au lieu d'Android L
  • Avantage et inconvénient de CardView
  • Vous n'avez pas accepté les accords de licence des composants SDK suivants
  • L'API PostMessage peut-elle être utilisée pour communiquer avec Android WebView?
  • Ligne générée dynamiquement avec la lueur efficace
  • Comment ajouter imageview sur le côté droit de la barre d'action?
  • 4 Solutions collect form web for “Android: Réglage du temps dans le sélecteur de temps avec l'heure affichée dans la vue du texte”

    Vous devez utiliser un SimpleDateFormat pour obtenir un objet Date de votre String . Ensuite, appelez simplement

     picker.setCurrentHour(date.getHours()) 

    et

     picker.setCurrentMinute(date.getMinutes()) 

    Étant donné que l'objet Date est obsolète, vous devez utiliser un Calendar au lieu de cela. Vous pouvez instancier un Calendar cette manière:

     Calendar c = Calendar.getInstance(); c.setTime(date); picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); picker.setCurrentMinute(c.get(Calendat.MINUTE)); 

    Modifier: le code complet

      SimpleDateFormat sdf = new SimpleDateFormat("hh:ss"); Date date = null; try { date = sdf.parse("07:00"); } catch (ParseException e) { } Calendar c = Calendar.getInstance(); c.setTime(date); TimePicker picker = new TimePicker(getApplicationContext()); picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); picker.setCurrentMinute(c.get(Calendar.MINUTE)); 

    Si quelqu'un utilisant le format suivant sans utiliser le widget timepicker, utilisez celui-ci.

     mStartTime.setOnClickListener(new OnClickListener() { public void onClick(View v) { new TimePickerDialog(AddAppointmentActivity.this, onStartTimeListener, calendar .get(Calendar.HOUR), calendar.get(Calendar.MINUTE), false).show(); } }); TimePickerDialog.OnTimeSetListener onStartTimeListener = new OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String AM_PM; int am_pm; mStartTime.setText(hourOfDay + " : " + minute + " " + AM_PM); calendar.set(Calendar.HOUR, hourOfDay); calendar.set(Calendar.MINUTE, minute); } }; 

    J'ai créé cette fonction d'aide pour obtenir du temps

      public static void showTime(final Context context, final TextView textView) { final Calendar myCalendar = Calendar.getInstance(); TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String am_pm = ""; myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); myCalendar.set(Calendar.MINUTE, minute); if (myCalendar.get(Calendar.AM_PM) == Calendar.AM) am_pm = "AM"; else if (myCalendar.get(Calendar.AM_PM) == Calendar.PM) am_pm = "PM"; String strHrsToShow = (myCalendar.get(Calendar.HOUR) == 0) ? "12" : myCalendar.get(Calendar.HOUR) + ""; //UIHelper.showLongToastInCenter(context, strHrsToShow + ":" + myCalendar.get(Calendar.MINUTE) + " " + am_pm); textView.setText(strHrsToShow + ":" + myCalendar.get(Calendar.MINUTE) + " " + am_pm); } }; new TimePickerDialog(context, mTimeSetListener, myCalendar.get(Calendar.HOUR), myCalendar.get(Calendar.MINUTE), false).show(); } 

    Et Comment obtenir l'heure actuelle dans le format requis, j'utilise le code suivant. // PARAM La date est la date du temps que vous souhaitez formater // PARAM currentFormat de la date // PARAM requiredFormat of date

      public static String getFormattedDate(String date, String currentFormate, String requiredFormate) { //SimpleDateFormat formatActual = new SimpleDateFormat("yyyy - MM - dd"); if (date != null) { SimpleDateFormat formatActual = new SimpleDateFormat(currentFormate); Date dateA = null; try { dateA = formatActual.parse(date); System.out.println(dateA); } catch (ParseException e) { e.printStackTrace(); } //SimpleDateFormat formatter = new SimpleDateFormat("dd MMM, yyyy"); SimpleDateFormat formatter = new SimpleDateFormat(requiredFormate); String format = formatter.format(dateA); System.out.println(format); return format; } else { return ""; } } 

    L'utilisation de getFormattedDate est:

      String date = getFormattedDate(dateYouWantToFormate,"hh:mm a","hh:mm"); 

    Pour AM / PM, vous devez implémenter une logique pour cela et c'est comme ci-dessous … afin que vous puissiez obtenir la sortie comme vous l'avez mentionné … essayez simplement le code ci-dessous …

     int hr=tp.getCurrentHour(); String a="AM"; if(hr>=12){ hr=hr-12; a="PM"; } String tm=hr+":"+tp.getCurrentMinute()+" "+a; Toast.makeText(MainActivity.this, tm, 500).show(); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.