如何在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"
这将会覆盖插入的所有单词的第一个字母