如何在Android应用程序的TextView中大写文本的第一个字母

我也不是指textInput。 我的意思是说,一旦在TextView中有静态文本(从数据库调用填充到用户input的数据(可能不是大写)),我怎样才能确保他们是大写?

谢谢!

我应该能够通过标准的Javastring操作来完成这一点,没有什么Android或特定的TextView。

就像是:

String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1); 

虽然有可能有一百万种方法来完成这一点。 参见string文档。

 android:inputType="textCapSentences" 

要么

 TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 

这将CAP第一个字母。

要么

 compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app) tv.setText(StringUtils.capitalize(myString.toLowerCase().trim())); 
 StringBuilder sb = new StringBuilder(name); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); return sb.toString(); 

对于未来的访问者,你也可以(最好的恕我直言)从Apache导入WordUtil ,并添加了很多有用的方法给你的应用程序,像capitalize ,如下所示:

如何大写string中每个单词的第一个字符

你可以在Gradle中添加Apache Commons Lang ,比如compile 'org.apache.commons:commons-lang3:3.4'

并使用WordUtils.capitalizeFully(name)

请创build一个自定义的TextView并使用它:

 public class CustomTextView extends TextView { public CapitalizedTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setText(CharSequence text, BufferType type) { if (text.length() > 0) { text = String.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length()); } super.setText(text, type); } } 

只需在EditText XML中添加这个属性: android:inputType="textCapWords"这将会覆盖插入的所有单词的第一个字母