Добавление EditText динамически делает его только для чтения - PullRequest
0 голосов
/ 12 марта 2019

У меня есть один EditText, определенный в xml, и я хочу добавить еще один динамически, но когда приложение запускается, динамически добавляемый ведет себя как TextView.Я не могу набрать ни одного текста и никаких каретных шоу.Это даже не похоже на EditText, который я включаю статически.См. Изображение.

enter image description here

У меня установлена ​​последняя версия Android Studio, новейшие эмуляторы, опробовано на API 28, а также на физическом устройстве Samsung 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>

1 Ответ

3 голосов
/ 12 марта 2019

Вместо настройки текста попробуйте установить подсказку и установить trueEnabled

   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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...