【问题标题】:Adding EditText dynamically makes it read only动态添加 EditText 使其只读
【发布时间】:2019-03-12 13:11:52
【问题描述】:

我在 xml 中定义了一个 EditText,我想动态添加另一个,但是当应用程序运行时,动态添加的行为类似于 TextView。我无法输入任何文本,也没有插入符号显示。它甚至不像我静态包含的 EditText。看图。

我有最新的 Android Studio、最新的模拟器,在 API 28 和物理设备三星 S8+ API 26 上进行了尝试,它在任何地方都以同样奇怪的方式工作。最糟糕的是,我确信过去它确实有效。

请问我怎么能找出问题所在?修复它?

代码:

public class TActivity extends AppCompatActivity {

 private LinearLayout Layout;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.t);

  Layout = (LinearLayout) findViewById(R.id.Layout);

  EditText Textbox = new EditText(this);
  Textbox.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
  Textbox.setText("My text");
  //Textbox.setEnabled(true);
  Layout.addView(Textbox);
 }
}

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/Layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/ThisWorks"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"/>
</LinearLayout>

【问题讨论】:

  • @VijaySinghChouhan 我正在这样做,但它不起作用。
  • 尝试使用edit.setEditable(true)
  • @VijaySinghChouhan setEditable 甚至不存在于 API 28 中?我错过了什么吗?

标签: android android-layout android-edittext


【解决方案1】:

尝试设置提示和 setEnabled true 而不是设置文本

   EditText editText = new EditText(this);
      editText.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
      editText.setHint("My Text");
      editText.setEnabled(true);
      //editText.setEditable(true);
      Layout.addView(editText);

【讨论】:

  • 谢谢,但它不起作用。你是怎么建造的。 API 28 中甚至不存在 setEditable。
  • 假设,我删除了 setEditable 行,即使你使用 setEnabled true 并且它会起作用。我使用了与您相同的代码,并使用了带有 setEditable 行注释的 EditText 代码,它运行良好。只需将setEnabled 用作true
  • 当然,我删除了 setEditable 但它没有用。然后我写了我的第一条评论。但是,正如我看到的那样,它是否适合您,问题将在于应用于活动的样式。但是,我需要证明这一点。风格是Android的......还是谢谢
  • 好的,所以它可以工作。似乎它不起作用,因为 Android 将不同的主题应用于动态元素(动态 EditText 没有边框等),但对于那个我问了其他问题。谢谢
猜你喜欢
  • 2014-02-03
  • 1970-01-01
  • 2021-01-28
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多