我想在打字时将编辑文本中的每个单词标题化.
我的XML: -
<com.project.edittext.AutoFitEditText
android:id="@+id/txt_name"
style="@style/scan_text_fields_white_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="@string/validation_accept_all_except_special_char"
android:fontFamily="sans-serif"
android:imeOptions="flagNoExtractUi|actionDone"
android:inputType="textNoSuggestions|textCapWords"
android:maxLength="50"
android:paddingBottom="3dp"
android:paddingLeft="12dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:singleLine="true"
android:textColor="@color/orange"
/>
Run Code Online (Sandbox Code Playgroud)
现在我正在使用
mName.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
Run Code Online (Sandbox Code Playgroud)
但问题是它在某些设备中不起作用.前LG平板电脑.所以我决定以编程方式执行此操作.
所以我使用以下代码.
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
String mNameStr=s.toString();
String finalStr="";
if(!mNameStr.equals("")) {
String[] strArray = mNameStr.split("[\\s']");
if (strArray.length > 0) {
for (int i = 0; i < strArray.length; i++) {
finalStr+=capitalize(strArray[i]);
}
Logger.d("finalStr==> ", finalStr);
}
}
mName.setText(finalStr.toString());
}
private String capitalize(final String …
Run Code Online (Sandbox Code Playgroud)