【问题标题】:android: singleline = true not working for edittextandroid:singleline = true 不适用于edittext
【发布时间】:2011-10-18 01:32:37
【问题描述】:

我想将 edittext 条目限制为一行,但是当我添加行 android:singleline = "true" 时,提示消失了,输入 26 个字符后光标向下。

这是我的 XML 代码:

   <EditText                      
            android:background="@drawable/edittxtborder"
            android:id="@+id/reglastname"
            android:singleLine="true"
            android:gravity="center"
            android:hint="@string/reglname"
            android:textSize="12dp" 
   />

【问题讨论】:

标签: android android-edittext


【解决方案1】:

将此代码添加到您的 edittext xml 代码中。

android:ellipsize="end"

这会起作用。

【讨论】:

  • 谢谢,但是在输入文本后,如果我按下回车键,光标不会下降到同一编辑文本中的第二行。它发生在这里。 Edittext shd 只取一行
  • 再次检查它不会创建新行。
  • 再次感谢,输入 26 个字符后,它会下降。我们可以限制它吗?
  • 你在哪里运行它到设备或模拟器以及哪个版本
  • 模拟器和版本是2.2,让我检查设备
【解决方案2】:

我检查了您的代码,问题出在 android:gravity="center" 上。将其更改为 android:gravity="left" ,您将能够看到提示。

【讨论】:

  • 谢谢,问题不在于提示实际上我可以做一些事情来显示提示,但我不希望光标下降到同一编辑文本字段中的第二行,edittext shd 只取单行不多个
  • 是的,它仍然是单行而不是多行.....光标将在单行上......
【解决方案3】:

使用属性inputType 的值而不是textMultiLine。输入将是单行。属性 singleLine 已弃用。

【讨论】:

    【解决方案4】:

    您可以使用setMaxLines(int) 以编程方式更改行号。

    EditText edit_field = new EditText(this);
    edit_field.setMaxLines(1);
    

    【讨论】:

      【解决方案5】:

      您可以通过将其输入类型设置为 TYPE_CLASS_TEXT 来直接编辑代码中的按钮。这将允许输入各种字符、数字和空格,但不能输入。所以实际上它会将其限制为一行。

      EditText editText = new EditText(this);
      editText.setInputType(InputType.TYPE_CLASS_TEXT);
      

      您还应该限制可以输入到 EditText 中的最大字符数。这也可以通过使用 InputFilter 的代码并使用 InputFilter 调用 EditText 的 setFilters 方法来完成。

      【讨论】:

        【解决方案6】:

        请使用

        android:maxLines="1"
        

        而不是

        android:singleLine="true" due to deprecate
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-05
          • 2017-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多