[英]Android EditText inputType not working
我試圖將每個單詞的首字母大寫,但輸入類型不起作用。 知道我在做什么錯嗎? 這是我的xml片段:
<EditText
android:id="@+id/firstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="false"
android:inputType="text|textCapWords"/>
我不是在為android應用程序編程很多,但是您不應該只留下android:inputType="textCapWords"
而不是android:inputType="text|textCapWords"
嗎?
這會有所幫助
android:inputType="textCapWords"
該解決方案對我有用,並且一定會為您服務。
創建一個靜態方法並在其中傳遞您的editText。 它完成了。
public static void setCapitalizeTextWatcher(final EditText editText) {
final TextWatcher textWatcher = new TextWatcher() {
int mStart = 0;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mStart = start + count;
}
@Override
public void afterTextChanged(Editable s) {
String input = s.toString();
String capitalizedText;
if (input.length() < 1)
capitalizedText = input;
else
capitalizedText = input.substring(0, 1).toUpperCase() + input.substring(1);
if (!capitalizedText.equals(editText.getText().toString())) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
editText.setSelection(mStart);
editText.removeTextChangedListener(this);
}
});
editText.setText(capitalizedText);
}
}
};
editText.addTextChangedListener(textWatcher);
}
您所需要的只是在找到edittext時調用此方法,並在參數中傳遞editText。
您可以在EditText上使用Set android:inputType="textCapSentences"
。
<EditText
android:id="@+id/firstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapSentences"/>
描述: textCapSentences可以與文本及其變體結合使用,以要求大寫每個句子的第一個字符。 對應於TYPE_TEXT_FLAG_CAP_SENTENCES。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.