我有以下EditText按预期方式工作。

        <EditText
                android:id="@+id/etMensagem"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/hint_message"
                android:minLines="4"
                android:text="@string/send"
                android:inputType="textCapSentences|textMultiLine"/>


但是,需要以编程方式设置属性(除layout_width和height以外的所有属性)。

这是我的尝试:

    edit_text.setText(context.getString(R.string.enviar_mensagem));
    edit_text.setMinLines(4);
    edit_text.setHint(context.getString(R.string.hint_message));
    edit_text.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE);


但是,当我这样做时,文本不会自动换行。尽管它是多行EditText,但与XML版本不同,它使文本保持在一行上。

我想念什么?

最佳答案

在这里找到答案:https://stackoverflow.com/a/5800511/770467


  要以编程方式设置EditText的输入类型,您必须
  指定输入类的类型为text


最终解决方案:

etMensagem.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE);

07-25 22:26