簡體   English   中英

Android EditText inputType不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM