Context
Я создаю RecyclerAdapter для отображения информации о прогнозе на определенный день.Мой RecyclerView содержит несколько дней, каждый из которых изменяется с помощью onBindViewHolder.
Макет каждого дня имеет 3 текстовых представления.Первый содержит строку, которая является сводкой.Второй содержит строку с двойным в качестве позиционного аргумента, который представляет низкую температуру.Третий идентичен второму, но представляет высокую температуру.
Ниже приведен код моего метода onBindViewHolder:
@Override
public void onBindViewHolder(@NonNull DailyForecastAdapter.ViewHolder viewHolder, int i) {
Datum datum = forecast.get(i);
TextView summary = viewHolder.summaryTextView;
TextView tempHigh = viewHolder.tempHighTextView;
TextView tempLow = viewHolder.tempLowTextView;
summary.setText(datum.getSummary());
tempHigh.setText(datum.getTemperatureHigh());
tempLow.setText(datum.getTemperatureLow());
}
Выпуск
Поскольку высокие и низкие температуры удваивается , мне нужно соответствующим образом отформатировать строку, чтобы я не перезаписал строку только двойным значением.Вот строковые ресурсы для высокой и низкой температуры:
<string name="temperature_high">High of %1$.2f</string>
<string name="temperature_low">Low of %1$.2f</string>
За пределами класса RecyclerAdapter Я знаю, как это сделать, ниже - пример того, как я форматирую строку внутрифрагмент:
String moddedString = String.format(getString(R.string.temperature), temp);
((TextView)activity.findViewById(R.id.temperatureDisplay)).setText(moddedString);
Однако У меня нет доступа к функции getString()
внутри RecyclerAdapter , поэтому я не могу правильно отформатировать строку, чтобы вставить нужную температуру безполностью переопределяя строку с двойным.
Вопрос
Как использовать getString()
в методе onBindViewHolder()
?