Nie mogę na życie zrozumieć, dlaczego ten prosty kod, aby ustawić ciąg spannable nie działa na ten widok tekstowy. Poniższa metoda dodaje znacznik "Dzisiaj", który powinien znajdować się na zielono przed tekstem wyświetlającym datę, jeśli data jest bieżącym dniem.Ustawianie ciąg spannable nie działa na prosty widok tekstowy
private void setTimeTextView(String timeString) {
Calendar c = Calendar.getInstance();
String todaysDateString = ApiContentFormattingUtil.getFullDateFormat(c.getTime());
if (timeString.equals(todaysDateString)){
String todayText = getResources().getString(R.string.today_marker);
Spannable timeSpannable = new SpannableString(todayText + timeString);
timeSpannable.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getContext(), R.color.greenish_teal)), 0,
todayText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mDateTime.setText(timeSpannable);
} else {
mDateTime.setText(timeString);
}
}
Jednak kolor się nie zmieni.
Oto XML dla tego widoku
<TextView
android:id="@+id/newsfeed_date_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:textSize="12sp"
android:textColor="@color/white_three"
android:letterSpacing="0.06"
app:fontPath="@string/opensans_bold_path"
tools:text="Monday, January 1st"
android:textAllCaps="true"
tools:ignore="MissingPrefix"
tools:targetApi="lollipop"/>
UWAGA: 'android: textAllCaps = "true"' złamie SpannableString –