EditText包含单行文本,换行和完成操作?

时间:2011-12-02 02:59:43

标签: android android-edittext

使用软键进行编辑时,我尝试使用具有以下特征的EditText。我准备了文档,在这里搜索,玩参数但找不到工作配置。

  1. 屏幕上的EditView视图的高度为几行(例如3-4)。
  2. 内容文字是一行(即没有换行符)。
  3. 如果内容文本长于视图的宽度,则应该换行到下一行
  4. 软键的Enter键显示完成操作标签。
  5. 我可以实现{1,2,3}和{1,2,4}但不能实现{1,2,3,4}。我的理由是,由于内容是单行(没有换行符),因此不使用Enter键,因此应该可以更改为Done标签。

    我的设置代码如下所示

    editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);
    editText.setHorizontallyScrolling(false);
    editText.setSingleLine(false);
    // This does not work. Soft keyboard has Enter action.
    editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
    

    有可能吗?有什么建议吗?

2 个答案:

答案 0 :(得分:35)

这种组合(以及EditText方法调用的特定顺序)应该产生你想要的配置:

  editText.setInputType(
    InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
  editText.setSingleLine(true);
  editText.setLines(4); // desired number of lines
  editText.setHorizontallyScrolling(false);
  editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

答案 1 :(得分:7)

添加

editText.setHorizontallyScrolling(false);
editText.setMaxLines(Integer.MAX_VALUE);

以编程方式在您的活动中使用您的edittext实例。

它配置EditText实例,以便用户编辑单行字符串,该字符串使用IME选项在多行上进行软包装显示。