我也不是指textInput。我的意思是,一旦您在TextView中拥有静态文本(从数据库调用填充到用户输入的数据(可能未大写)),如何确保它们大写?
谢谢!
Answers:
以下内容不适用于TextView,但可用于EditText。即使这样,它也适用于从键盘输入的文本,而不适用于用setText()加载的文本。更具体地说,它会在键盘上打开Caps,用户可以随意改写。
android:inputType="textCapSentences"
要么
TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
这将首字母大写。
要么
compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app)
tv.setText(StringUtils.capitalize(myString.toLowerCase().trim()));
对于Kotlin,只需致电
textview.text = string.capitalize()
您可以
在Gradle中添加Apache Commons Lang,例如compile 'org.apache.commons:commons-lang3:3.4'
并使用 WordUtils.capitalizeFully(name)
对于将来的访问者,您还可以(最好的恕我直言)WordUtil
从Apache
您的应用程序中导入并添加许多有用的方法,如下capitalize
所示:
对我来说,没有工作:
功能:
private String getCapsSentences(String tagName) {
String[] splits = tagName.toLowerCase().split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < splits.length; i++) {
String eachWord = splits[i];
if (i > 0 && eachWord.length() > 0) {
sb.append(" ");
}
String cap = eachWord.substring(0, 1).toUpperCase()
+ eachWord.substring(1);
sb.append(cap);
}
return sb.toString();
}
结果:
I / P brain
O / P大脑
输入/ Brain and Health
输出 Brain And Health
从I / P brain And health
到O / P Brain And Health
从I / P brain's Health
到O / P Brain's Health
从I / P brain's Health and leg
到O / P Brain's Health And Leg
希望这对您有帮助。
请创建一个自定义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);
}
}
在这里,我写了一篇关于该主题的详细文章,因为我们有几种选择,即在Android中将字符串的首字母大写
Java中大写字符串首字母的方法
public static String capitalizeString(String str) {
String retStr = str;
try { // We can face index out of bound exception if the string is null
retStr = str.substring(0, 1).toUpperCase() + str.substring(1);
}catch (Exception e){}
return retStr;
}
Kotlin中首字母大写的方法
fun capitalizeString(str: String): String {
var retStr = str
try { // We can face index out of bound exception if the string is null
retStr = str.substring(0, 1).toUpperCase() + str.substring(1)
} catch (e: Exception) {
}
return retStr
}
使用XML属性
或者您可以在TextView或XML的EditText中设置此属性
android:inputType="textCapSentences"