我正在研究一個小小的個人待辦事項列表應用程序,至今一切工作都很順利。我想弄清楚一點小怪癖。每當我去添加一個新的項目時,我都會看到一個帶有EditText視圖的對話框。當我選擇EditText視圖時,鍵盤出現以輸入文本,因爲它應該。在大多數應用程序中,默認情況似乎是,第一個字母是按住Shift鍵的,儘管這不符合我的觀點。必須有一個簡單的方法來解決,但我已經重複搜索參考,並找不到它。我認爲必須有適配器加載的引用的xml屬性,但我無法找到它是什麼。EditText的第一個字母大寫字母
回答
靜態(即在您的佈局XML文件中):在EditText
上設置android:inputType="textCapSentences"
。
以編程方式:您必須將InputType.TYPE_CLASS_TEXT
包含在EditText
的InputType
中,例如,
EditText editor = new EditText(this);
editor.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
可以用文本及其變化相結合,要求每個句子的第一個字符的大小寫。
在你的EditText元素只需使用android:inputType="textCapWords"
。
例如:
3210請參考以下鏈接以供參考: http://developer.android.com/reference/android/widget/TextView.html#attr_android%3ainputType
testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
或android:inputType="textCapSentences"
只會工作,如果你的設備的鍵盤自動大寫設置爲啓用。
我遇到了同樣的問題,只是分享我發現的。可以幫助你和其他人...
試試這個在你的layout.add在你的EditText
下面的行。
android:inputType="textCapWords|textCapSentences"
正常工作對我..希望它的工作原理還對你...
嘗試這個代碼,它將利用所有單詞第一個字符。
- 設置爲addTextChangedListener視圖的EditText
edt_text.addTextChangedListener(觀察者);
- 添加TextWatcher
TextWatcher watcher = 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 if (input.length() > 1 && input.contains(" ")) {
String fstr = input.substring(0, input.lastIndexOf(" ") + 1);
if (fstr.length() == input.length()) {
capitalizedText = fstr;
} else {
String sstr = input.substring(input.lastIndexOf(" ") + 1);
sstr = sstr.substring(0, 1).toUpperCase() + sstr.substring(1);
capitalizedText = fstr + sstr;
}
} else
capitalizedText = input.substring(0, 1).toUpperCase() + input.substring(1);
if (!capitalizedText.equals(edt_text.getText().toString())) {
edt_text.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) {
edt_text.setSelection(mStart);
edt_text.removeTextChangedListener(this);
}
});
edt_text.setText(capitalizedText);
}
}
};
應用按照XML格式的EditText上線。
android:inputType="textCapSentences|textMultiLine"
它也將允許多線支持。
此前它曾經是android:capitalize="words"
,現在已不建議。推薦的替代方案是使用android:inputType="textCapWords"
請注意,如果您的設備鍵盤自動大寫設置已啓用,這纔有效。
要做到這一點編程,用下面的方法:在XML,以及在這樣的JAVA文件
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
設置輸入類型,
在XML中,
安卓的inputType = 「textMultiLine | textCapSentences」
它還將允許多和JAVA文件,
edittext.setRawInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
確保鍵盤的自動大寫設置啓用。
- 1. 大寫字母的第一個字母
- 2. 第一個字母大寫
- 3. 大寫字母的字符串的第一個字母只
- 4. Swift大寫字母中每個單詞的第一個字母
- 5. 第一個字母大寫小寫
- 6. 第一個字母的大寫的EditText與GBoard輸入
- 7. Javascript/jQuery大寫變音字母的第一個字母
- 8. 大寫字母中的第一個字母?
- 9. 大寫字母冒號後跟第一個字母?:Javascript
- 10. 僅在Python中使用第一個字母大寫字母
- 11. 用紅寶石字母大寫第一個字母
- 12. 尋找第一個大寫字母
- 13. BASH - 讓第一個字母大寫
- 14. XSLT2.0第一個字母大寫
- 15. C使第一個字母大寫
- 16. 的首字母大寫只有大寫第一個字的f.label
- 17. 如何匹配的第一個字母是大寫/大寫字母在PHP?
- 18. 當按下字母,寫字母a EDITTEXT
- 19. 大寫第一個字母大寫但不改變大寫
- 20. 第一個數組項目的大寫字母,但仍然有小寫字母
- 21. 大寫每個大寫單詞的第一個字母
- 22. 大寫字母中的三個字母單詞的第一個和最後一個字母
- 23. 怎樣的第一個字母返回一個字大寫
- 24. C源代碼將字符串中的第一個字母從小寫字母改爲大寫字母
- 25. 字符串 - 大寫元音,下一個字母的字母 - Javascript
- 26. 大寫字母和小寫字母
- 27. 如何寫一個字母的字母?
- 28. 將某個單詞的第一個字母更改爲大寫字母
- 29. 將每個單詞的第一個字母轉換爲大寫字母JS
- 30. Edittext首字母不自動大寫
testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS); 或android:inputType =「textCapSentences」將只在您的設備鍵盤啓用Auto Capitalize Setting時起作用。 – Lakshmanan 2014-03-11 09:47:07
爲什麼啓用這導致我的`機器人:行=「7」'不再顯示七行(現在默認回到1線) – 2015-12-14 02:38:43
estEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);或者android:inputType =「textCapSentences」將僅適用於您的設備鍵盤啓用了Auto Capitalize Setting。 **編程文本字段爲單行的解決方案** – Swift 2016-12-20 07:24:24