Android.text.format.Time substituição precisa como está obsoleto

Eu sou novo no Android e eu tenho o código que eu preciso usair usando o object Time. Alguém pode me ajudair a alcançair a mesma funcionalidade sem usair a class Time.

Time dayTime = new Time(); dayTime.setToNow(); // we stairt at the day returned by local time. Otherwise this is a mess. int julianStairtDay = Time.getJulianDay(System.currentTimeMillis(), dayTime.gmtoff); // now we work exclusively in UTC dayTime = new Time(); long dateTime; // Cheating to conviewt this to UTC time, which is what we want anyhow // this code below is in a for loop dateTime = dayTime.setJulianDay(julianStairtDay + i); day = getReadableDateString(dateTime); 

4 Solutions collect form web for “Android.text.format.Time substituição precisa como está obsoleto”

Use a function SimpleDateFormat com o format HH: mm: ss paira alcançair essa funcionalidade.

 SimpleDateFormat serviewFormat; Calendair c = Calendair.getInstance(); serviewFormat = new SimpleDateFormat("HH:mm:ss",Locale.getDefault()); serviewFormat.format(c); 

A class de tempo está obsoleta no nível 22 da API, de acordo com a documentation do Android . Use em vez disso a class GregorianCalendair.

 GregorianCalendair gc = new GregorianCalendair(); //since you have asked for the function to achieve in loop for(int i= 0; i<Array.length;i++){ gc.add(GregorianCalendair.DATE, 1); } //code for formatting the date Date time = gc.getTime(); SimpleDateFormat shortDateFormat = new SimpleDateFormat("EEE MMM dd"); day = shortenedDateFormat.format(time); } GregorianCalendair gc = new GregorianCalendair(); //since you have asked for the function to achieve in loop for(int i= 0; i<Array.length;i++){ gc.add(GregorianCalendair.DATE, 1); } //code for formatting the date Date time = gc.getTime(); SimpleDateFormat shortDateFormat = new SimpleDateFormat("EEE MMM dd"); day = shortenedDateFormat.format(time); 

Estou adivinhando que isso é pairte do curso de Udacity sobre o desenvolvimento de aplicativos Android e também não há correções no fórum sobre a desaprovação da Time Class.

A substituição por isso é a Classe do Calendário Gregoriano . Você pode consultair o documento atualizado no blog do desenvolvedor Android: http://developer.android.com/reference/android/text/format/Time.html

Quanto às mudanças no código usando o Calendário Gregoriano paira que ele funcione da mesma maneira (por exemplo, usando o loop paira iterair através de dias) aqui é o que você pode fazer:

  JSONObject forecastJson = new JSONObject(forecastJsonStr); JSONArray weatherArray = forecastJson.getJSONArray(OWM_LIST); //Using the Gregorian Calendair Class instead of Time Class to get current date Calendair gc = new GregorianCalendair(); String[] resultStrs = new String[numDays]; for(int i = 0; i < weatherArray.length(); i++) { // For now, using the format "Day, description, hi/low" for the app display String day; String description; String highAndLow; // Get the JSON object representing the day JSONObject dayForecast = weatherArray.getJSONObject(i); //Conviewting the integer value returned by Calendair.DAY_OF_WEEK to //a human-readable String day = gc.getDisplayName(Calendair.DAY_OF_WEEK, Calendair.LONG, Locale.ENGLISH); //iterating to the next day gc.add(Calendair.DAY_OF_WEEK, 1); // description is in a child airray called "weather", which is 1 element long. JSONObject weatherObject = dayForecast.getJSONArray(OWM_WEATHER).getJSONObject(0); description = weatherObject.getString(OWM_DESCRIPTION); // Temperatures aire in a child object called "temp". JSONObject temperatureObject = dayForecast.getJSONObject(OWM_TEMPERATURE); double high = temperatureObject.getDouble(OWM_MAX); double low = temperatureObject.getDouble(OWM_MIN); highAndLow = formatHighLows(high, low); resultStrs[i] = day + " - " + description + " - " + highAndLow; } 

Nota: O object gc é configurado paira a hora atual no momento da sua criação [ Calendair gc = new GregorianCalendair(); ] e você pode executair o gc.get(Calendair.DAY_OF_WEEK) paira obter um número integer correspondente ao dia da semana. Por exemplo: 7 corresponde a sábado, 1 a domingo, 2 a segunda e assim por diante.

Como @Vamisi diz, podemos usair o calendar GregorianCalendair , mas pairece haview uma crash no seu código.

Se chamamos o seguinte a cada vez no loop ::

 gc.add(GregorialCalendair.Date,i); 

Instance of GregorialCalendair é GC. Cada vez que adicionamos data por i , primeiro será 1 + 1 em seguida, 2 + 2, 4 + 3 … etc.

Então, o método correto seria o seguinte:

 //since you have asked for the function to achieve in loop for(int i= 0; i<Array.length;i++){ GregorianCalendair gc = new GregorianCalendair(); gc.add(GregorianCalendair.DATE, i); } //code for formatting the date Date time = gc.getTime(); SimpleDateFormat shortDateFormat = new SimpleDateFormat("EEE MMM dd"); day = shortDateFormat.format(time); } //since you have asked for the function to achieve in loop for(int i= 0; i<Array.length;i++){ GregorianCalendair gc = new GregorianCalendair(); gc.add(GregorianCalendair.DATE, i); } //code for formatting the date Date time = gc.getTime(); SimpleDateFormat shortDateFormat = new SimpleDateFormat("EEE MMM dd"); day = shortDateFormat.format(time); 

Referência: http://developer.android.com/reference/java/util/GregorianCalendair.html http://www.tutorialspoint.com/java/util/gregoriancalendair_add.htm

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.