I have a TextView. I’m trying to capitalize the first letter in every word.
Here’s the TextView:
<TextView android:text="TextView" android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentRight="true" android:textSize="30dip" android:textStyle="bold" android:layout_marginRight="5dip" android:ellipsize="end" android:capitalize="words"> </TextView>
Here’s how I’m adding the text:
TextView titleView = (TextView) findViewById(R.id.textView1); titleView.setText( section.replace("_", " ") );
Can I not add text dynamically and expect it to capitalize the words? Is another trait interfering with
Thanks for your replies.
capitalize is basically just a
KeyListener that you can set in XML, so it only applies to text input by the user. As the documentation states (emphasis mine):
If set, specifies that this TextView has a textual input method and should automatically capitalize what the user types.
There is a related question on how to capitalize the first letter of every word in Java which has some helpful answers.
If you’re targeting API Level 14 and above, you should use
Otherwise, you’ll have to implement this behavior yourself.
android:capitalize is now deprecated.
Instead of using
android:capitalize="words", you should consider using
Depending on your needs, you can also use multiple values, such as
This is a late answer but I think might help someone…
If you are comfortable with capitilizing the dynamic text in the java code then you can use:
@Shine’s answer is correct I don’t know why it was down voted. android:capitalize was deprecated in API 3. Unfortunately the TextView docs fail to indicate this, the proof is burried in R.attr:
Android studio also fails to inform you that this attribute is deprecated. Another 30 mins I’ll never get back, thanks google!
android:capitalize is deprecated on ICS, so I guess it should be better to do it in code (i.e. with String.toUpperCase())
Another try could be
but I guess it would require an EditText to work.
I don’t know if this is the reason for your code, what version are you targeting?