У меня есть приложение погоды, которое получает информацию о погоде json отсюда:
http://icomms.ru/inf/meteo.php/?tid=44
В значении "temp" есть минус (например: "temp":"−16"), и когда я получаю значение из json с retrofit2 и показываю его в текстовом виде, вместо этого отображается −16-16
Как я могу показать -16 вместо −16?
Фрагмент из RecyclerViewAdapter (я использую его для отображения информации о погоде в течение нескольких дней), где я устанавливаю текст в текстовое представление
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Meteo meteo = data.get(position);
holder.date.setText(meteo.date);
holder.tod.setText(meteo.tod);
holder.pressure.setText(meteo.pressure);
// THIS IS TEMPERATURE SETTING TEXT LINE
holder.temp.setText(meteo.temp);
holder.humidity.setText(meteo.humidity);
holder.wind.setText(meteo.wind);
holder.cloud.setText(meteo.cloud);
}
Класс данных о погоде:
public class Meteo {
public String date;
public String tod;
public String pressure;
public String temp;
public String humidity;
public String wind;
public String cloud;
}
Текст ответа:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(APIService.HOST)
.addConverterFactory(GsonConverterFactory
.create())
.build();
APIService apiService = retrofit.create(APIService.class);
Call<List<Meteo>> call = apiService.getMeteo(44);
call.enqueue(new Callback<List<Meteo>>() {
@Override
public void onResponse(Call<List<Meteo>> call, Response<List<Meteo>> response) {
MeteoAdapter adapter = new MeteoAdapter(response.body());
// Method show just shows list of weather data
getViewState().show(adapter);
}
@Override
public void onFailure(Call<List<Meteo>> call, Throwable t) {
Log.d("MyLog", "WRONG");
}
});




Попробуй это. Я использую его для форматирования html-тегов в текстовом представлении:
String s = Html.fromHtml("−16");
tv.setText(s);
Обоснование: он задает текст как составной объект, а не как строку.
Примечание. Невозможно проверить это в настоящее время, извините, если это не работает.