2016-12-06 43 views
5

Hayatım boyunca, bu basit kodun yazılabilir bir dizeyi ayarlama nedeninin bu metin görünümünde çalışmadığını anlayamıyorum. Aşağıdaki yöntem, tarihin geçerli tarih olup olmadığı tarihi gösteren metinden önce yeşil renkte olması gereken "Bugün" işaretini ekler. Ancak renk değişmeyecektir. İşte Basit bir Textview üzerinde çalışmayan bir yamuk dizeyi ayarlama

enter image description here

Bu görüşe

<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"/> 
+0

NOT: 'android: = "true"', bunun başarıya ulaşması çıkardıktan sonra, teşekkür ederim çok textAllCaps: textAllCaps = "true" 'ı' android kullanıyordum –

cevap

21

textAllCaps özelliğinde, String herhangi Spannable bilgi sıyırma olduğu için XML olduğunu. Bunu kaldırmanız (veya false'a ayarlamanız) ve SpannableString ürününü oluşturmadan önce dönüştürmeyi büyük harfe dönüştürmeniz gerekir. Örneğin:

String todayText = getResources().getString(R.string.today_marker); 
String text = todayText + timeString; 

Spannable timeSpannable = new SpannableString(text.toUpperCase()); 

Bu, özellikle AllCapsTransformationMethod ile textAllCaps nitelik ile ilgili bilinen bir hata var.

http://code.google.com/p/android/issues/detail?id=67509

+1

SpannableString kıracak! –