Android大写字符在手机中不起作用

Posted

技术标签:

【中文标题】Android大写字符在手机中不起作用【英文标题】:Android Capitalize characters not working in phone 【发布时间】:2013-03-07 16:50:56 【问题描述】:

在我的应用中,我想让用户只输入大写字母。所以我使用大写属性。

这是代码的一部分

<EditText
    android:id="@+id/et5"
    android:layout_
    android:layout_
    android:layout_x="127dp"
    android:layout_y="219dp"
    android:maxLength="25"
    android:ems="10"
    android:singleLine="true"
    android:capitalize="characters"
    android:text="" />

在某些情况下我也试过这个

android:inputType="textCapCharacters"

在模拟器中可以正常使用,但在手机中无法使用。在电话中,它显示小写字母。这里的错误是什么以及如何克服?

【问题讨论】:

【参考方案1】:

尝试像这样在 java 类中使用它:

textView.setText(text.toUpperCase());

您还可以使用 Textwatcher 方法对更改的文本应用大写

要让它在 xml 中工作,你应该试试这个:

android:inputType="textCapCharacters" 

【讨论】:

好的,然后尝试 android:inputType="textCapCharacters" 因为大写已被弃用 textCapSentences 只大写第一个字母 android:inputType="textCapCharacters" 。如果我的回答是正确的,请接受并投票赞成我的回答【参考方案2】:
edittext.addTextChangedListener(new TextWatcher() 

@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3)             


    @Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3)              

@Override
public void afterTextChanged(Editable arg0) 
      String s=arg0.toString();
  if(!s.equals(s.toUpperCase()))
  
     s=s.toUpperCase();
     edittext.setText(s);
  

);     

【讨论】:

我已经提到了。我只想显示大写字母键盘【参考方案3】:

试试这个

<EditText
android:inputType="textCapCharacters" />


<EditText
android:inputType="textCapWords" />

或者你可以在java文件中以编程方式进行

 String str = et.getText.toString().toUpperCase();

【讨论】:

【参考方案4】:

试试这个:

editText.setFilters(new InputFilter[] new InputFilter.AllCaps());

并将 EditText xml 属性设置为:

android:inputType="text|textCapCharacters"

希望对你有帮助:)

【讨论】:

以上是关于Android大写字符在手机中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Float left 在 ipod、android 智能手机等移动设备中不起作用

通过意图打开whatsapp在Android 11中不起作用

HttpResponseCache 在 Android Lollipop 中不起作用

Android 投射通知在锁定屏幕中不起作用

Html 列表标签在 android textview 中不起作用。我能做些啥?

带有日期字符串的 Android SQLite rawquery 在 WHERE 子句中不起作用