【问题标题】:Android keyboard - start lowercaseAndroid 键盘 - 开始小写
【发布时间】:2014-01-24 13:01:31
【问题描述】:

当我点击 EditText 时,是否可以用小写字母启动 android 键盘? 基本上,我想要的是小写 EditText 中的第一个字母,但也让用户可以根据需要将其变为大写...

(EditText 输入是并且必须是多行文本)

编辑:

            <EditText
                android:id="@+id/txt_str"
                android:inputType="text|textMultiLine"
                android:maxLines="1"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent"
                android:hint="@string/enter_txt_here"
                android:textIsSelectable="true"
                android:layout_marginRight="6dp"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:textSize="17sp"
                android:textColor="#FFFFFF"
                android:textColorHint="#FFFFFF"
                android:gravity="center_vertical"
                android:background="@drawable/txt_card_selector"
                android:ellipsize="start" />

EDIT2
我认为当文本必须是多行时这是不可能的......

【问题讨论】:

    标签: android keyboard android-edittext lowercase


    【解决方案1】:

    是的,这是可能的。尝试研究 EditText Input Types

    例如,您可以通过以下方式强制键盘默认状态为小写:

    EditText text = new EditText(context);
    text.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE);
    

    或者如果你想强制每个句子都大写:

    EditText text = new EditText(context);
    text.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
    

    你可以找到一个完整的列表类型here

    【讨论】:

    • 尝试添加 InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS 标志。
    • 你测试的是什么 SDK 版本?
    • Android 2.3.3 (SDK 10)
    • 你可以在 XML 中添加这些标志,你也有 maxLines=1 可以防止多行。
    • '属性maxLines对应EditText的最大高度,它控制的是外部边界,而不是内部文本行'。
    【解决方案2】:

    使用xml可以强制键盘变成小写

    android:inputType="text|textEmailAddress"
    

    【讨论】:

      【解决方案3】:

      正如本页所说: Initial keyboard on lowercase

      将输入类型设置为电子邮件地址:

      Text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
      

      【讨论】:

        【解决方案4】:

        使用

        text.setInputType(text.InputType.TYPE_CLASS_TEXT | text.InputType.TYPE_TEXT_FLAG_MULTI_LINE);
        

        text.setInputType(text.InputType.TYPE_CLASS_TEXT | text.InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
        

        对我不起作用。实际上是这样的:

        text.setInputType(inputEditText.getInputType() | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS); // forced capitalization
        text.setInputType(inputEditText.getInputType() & ~ InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS); // negate the flag
        

        【讨论】:

        • 没有用,至少在使所有文本输入小写方面。
        • 这实际上是让键盘最初使用小写。
        • 是的。我需要将所有字符转换为小写。
        • 然后你需要使用过滤器,通过它们你可以对用户输入进行操作和修改
        猜你喜欢
        • 1970-01-01
        • 2011-09-19
        • 1970-01-01
        • 2011-02-20
        • 2012-07-11
        • 2012-10-26
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        相关资源
        最近更新 更多