textCapWords不适用于三星键盘

时间:2016-07-27 11:21:44

标签: android android-edittext android-softkeyboard

这是我的EditText,textCapWords不适用于三星键盘。 (三星S4)。有什么解决方法吗?

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:background="@android:color/transparent"
        android:imeOptions="actionDone"
        android:inputType="textCapWords"
        android:maxLength="15"
        android:padding="12dp"
        android:textSize="20sp" />

5 个答案:

答案 0 :(得分:1)

在XML中尝试:

android:textAllCaps="true"

答案 1 :(得分:1)

您是否以编程方式进行了尝试?

youredttxt.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);

android:inputType="textCapWords|textCapSentences"

AFAIK这个被弃用了,但我不知道它是否有效,但你可以试试,

android:capitalize="words"

答案 2 :(得分:0)

可以尝试一下......为我工作......

android:inputType="textCapWords"

或者

android:inputType="textCapSentences"

或者

android:inputType="textCapWords"

对于Samsung S5 / S7,在名为“Auto Capitalize”的设置中有额外的设置,可以在Caps中制作第一个租船人。

答案 3 :(得分:0)

使用android:inputType="textCapWords",您可以更改句子中每个单词的第一个字母。 但是也许您之前将键盘更改为自定义,则应该转到设置并将键盘更改为默认键盘。希望对您有帮助。

答案 4 :(得分:-1)

使用此部分设备键盘不支持capWords或禁用设置

此代码Edittext每个单词首字母大写

 youredittext.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {
            String capitalizedText = WordUtils.capitalize(youredittext.getText().toString());
            if (!capitalizedText.equals(youredittext.getText().toString())) {
                youredittext.addTextChangedListener(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) {
                        youredittext.setSelection(mStart);
                        youredittext.removeTextChangedListener(this);
                    }
                });
                youredittext.setText(capitalizedText);
            }
        }
    });
  

下载jar以导入WordUtils

https://www.dropbox.com/s/olfjyhfrghxvfs2/orgwordutils.jar?dl=0