文档章节

EditText的首字母大写

 技术盛宴
发布于 02/20 19:01
字数 626
阅读 120
收藏 0

我正在开发一个小小的个人待办事项列表应用程序,到目前为止,一切都运行良好。 我想知道一个小怪癖。 每当我去添加一个新项目时,我都会看到一个带有EditText视图的Dialog。 当我选择EditText视图时,键盘会按原样输入文本。 在大多数应用程序中,默认似乎是为第一个字母保留shift键...虽然它不会为我的视图执行此操作。 必须有一个简单的方法来修复,但我已经反复搜索引用,无法找到它。 我认为必须有一个由适配器加载的引用的xml属性,但我无法找出它是什么。


#1楼

只需在EditText元素中使用android:inputType="textCapWords"

例如:

<EditText
    android:id="@+id/txtName"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_weight="0.7"
    android:inputType="textCapWords"
    android:textColorHint="#aaa"
    android:hint="Name Surname"
    android:textSize="12sp" />

请参阅以下链接以供参考: http//developer.android.com/reference/android/widget/TextView.html#attr_android%3ainputType


#2楼

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

或者android:inputType="textCapSentences"仅在您的设备键盘启用自动大写设置时才有效。


#3楼

我遇到了同样的问题,只是分享我发现的东西。 可能会帮助你和其他人......

在你的layout.add上编辑你的EditText下面的行。

android:inputType="textCapWords|textCapSentences"

在我身上工作正常..希望它也适用于你......


#4楼

尝试此代码,它将使所有单词的第一个字符大写。

- 为EditText视图设置addTextChangedListener

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);
        }
    }
};

#5楼

在XML中的EditText中应用以下行。

android:inputType="textCapSentences|textMultiLine"

它还将允许多线支持。

本文转载自:https://stackoom.com/question/KAxl/EditText的首字母大写

粉丝 0
博文 1631
码字总数 0
作品 0
深圳
高级程序员
私信 提问
加载中

评论(0)

如何禁用 EditText 首字母自动大写?

我估计这是一个很愚蠢的问题,我想禁用 EditText 自动将输入的首字母设为大写的特性。当然如果用户直接输入大写字母是允许的。 我尝试了 android:capitalize="none" 以及 android:inputType=...

无鸯
2011/08/08
1.9K
2
EditText属性及使用

EditText常见属性: 属性 功能 android:hint="提示信息" 设置显示在控件上的提示信息 android:numeric="integer" 设置只能显示数字,integer:整数;decimal:小数 android:singleLine="true......

紫韵
2016/01/29
93
1
Android中EditText的inputType属性值

android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。 <EditText android:...

Carl_
2014/12/26
1.3W
0
Android--(3)--详解EditText与其属性介绍

EditText标签相当于html中的输入框;可以让用户进行输入操作的一种控件; EditText是继承于TextView的; 常用的属性:(EditText具备TextView的所有属性) Android:singleLine //是否单行或者多行...

chfangfang
04/01
0
0
Android开发教程EditText属性解析

作为android初学者,必须更好的了解android开发基础知识。在 android开发 中,EditText继承TextView,所以EditText具有TextView的属性特点,下面主要介绍一些EditText的特有的输入法的属性特...

maiziedu
2015/01/15
253
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty:初识Netty

前文总结了NIO的内容,有了NIO的一些基础之后,我们就可以来看下Netty。Netty是Java领域的高性能网络传输框架,RPC的技术核心就是网络传输和序列化,所以Netty给予了RPC在网络传输领域巨大的...

北柠Java
2分钟前
13
0
2.4 String引用变量与对象

2.4 引用变量与对象 A aa; 这个语句声明一个类A的引用变量aa【我们常常称之为句柄】,而对象一般通过new创建,所以aa仅仅是一个引用变量,它不是对象。

Wannabe-
2分钟前
15
0
笔记:每周打折验收单品

我们在每周的星期一,会把上一周(上周的星期一起至星期天)所有打折单品的记录汇总到一个Excel模板(如:4月份第1周品控特采验收单品周报.xlsm),则可生成一下报告,供发送邮件周报(4月份...

tengyulong
7分钟前
3
0
从数组中找出相加之和等于某个特定值的两个数

从数组中找出相加之和等于某个特定值的两个数: 方法1,两次循环;方法二,一次循环 ''' Find out two numbers from num which add up to 'target''''def solution(nums, tar......

SVD
12分钟前
7
0
RabbitMQ学习:RabbitMQ的六种工作模式之简单和工作模式(三)

RabbitMQ的六种工作模式 首先开启虚拟机上的rabbitmq服务器 # 启动服务systemctl start rabbitmq-server 一、简单模式 RabbitMQ是一个消息中间件,你可以想象它是一个邮局。当你把信件放到...

其乐m
24分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部