Intereting Posts
DhcpInfo не отвечает на сетевую маску в Android Lolipop Правильный способ полностью снять флажок флажка в API 16 и ниже Добавить ошибку dexdebug при создании Android-проекта Могут ли аннотации Гссона и Джексона сосуществовать в одном POJO? Запросить SQLiteDatabase для Android с помощью Regex Google App Engine Java HTTP Post Image из API-метода для сервлета Android Emulator не запускает проект LibGDX? Выбор WebView заставляет мягкую клавиатуру временно скрываться, а затем возвращаться Как разрешить ADB-устройство не авторизовано на хост-устройстве Android ADB? Передача пользовательских объектов для следующей активности в Xamarin Android Позиция CSS: исправлено появление размытых изображений в Android-браузерах Android – Как установить уведомление на определенную дату в будущем? Android, прозрачный суб-GLSurfaceView в макете? Gradle: Как отобразить результаты androidTest в консоли? Как я могу поворачивать отображение только в ландшафтном режиме в android?

Как получить данные из каждого динамически созданного EditText в Android?

Я успешно создал EditTexts в зависимости от ввода пользователя в Android, а также присвоил им уникальный идентификатор с помощью setId() .

Теперь я хочу получить значения из динамически созданного EditText s, когда пользователь нажимает кнопку, а затем сохраняет все в переменных String. Т.е. значение из EditText с идентификатором '1' должно быть сохранено в str1 типа String и т. Д. В зависимости от количества EditTexts.

Я использую getid() и gettext().toString() но это кажется немного сложным … Я не могу назначить каждое значение EditText переменной String. Когда я пытаюсь сделать это, возникает NullPointerException , и если это не тот случай, когда нет пользовательских входных данных, я показываю их в тосте.

Heres, код:

 EditText ed; for (int i = 0; i < count; i++) { ed = new EditText(Activity2.this); ed.setBackgroundResource(R.color.blackOpacity); ed.setId(id); ed.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); linear.addView(ed); } 

Как передать значение из каждого EditText в каждую переменную? Если бы какой-то орган мог помочь с образцом кода, было бы неплохо.

Solutions Collecting From Web of "Как получить данные из каждого динамически созданного EditText в Android?"

На каждой итерации вы переписываете переменную ed , поэтому, когда цикл завершен, только указывает на последний экземпляр EditText, который вы создали.

Вы должны хранить все ссылки на все EditTexts:

 EditText ed; List<EditText> allEds = new ArrayList<EditText>(); for (int i = 0; i < count; i++) { ed = new EditText(Activity2.this); allEds.add(ed); ed.setBackgroundResource(R.color.blackOpacity); ed.setId(id); ed.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); linear.addView(ed); } 

Теперь список allEds содержит ссылки на все EditTexts, так что вы можете повторить его и получить все данные.

Обновить:

По запросу:

 String[] strings = new String[](allEds.size()); for(int i=0; i < allEds.size(); i++){ string[i] = allEds.get(i).getText().toString(); } 

Вы также можете сделать это, взяв массив EditText. Вы должны хранить все ссылки на все EditTexts:

 EditText ed[] = new EditText[count]; for (int i = 0; i < count; i++) { ed[i] = new EditText(Activity2.this); ed[i].setBackgroundResource(R.color.blackOpacity); ed[i].setId(id); ed[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); linear.addView(ed[i]); } 

И вы можете использовать для цикла, чтобы получить значение из EditText.

  for(int i = 0; i < ed.length; i++){ Log.d("Value ","Val " + ed[i].getText()); } 

У меня есть цикл for, генерирующий динамические TextViews в TableRows из строки JSON. Вот что я сделал:

 // Generate Dynamic tablerows and set a unique id //m_jArry is a JSON Array for(int i = 0; i < m_jArry.length(); i++) { jo_inside = m_jArry.getJSONObject(i); TableRow row = new TableRow(getApplicationContext()) row.setId(jo_inside.getInt("id")); ... findViewById(row.getId()) ... } 

Я использую findViewById (row.getId ()) для установки динамических текстовых данных TextView в поля EditText в моем приложении. Для тех из вас, кто не понимает JSON, есть несколько хороших учебных пособий (я уверен, что здесь есть большие объяснения на Stack Overflow) для платформы Android. Я все еще новичок в Android, но надеюсь, что это поможет некоторым из вас.

Это потому, что EditText.gettext () возвращает Editable, поэтому toString не будет работать. Попробуйте String.valueOf (edittext.gettext).

Если и убедитесь, что ур получил d edit Edit, но prob. Это то, как 2 пройти тест на string den code is

  EditText t = new EditText(this); t.setText("test");// obviously in ur case it will be intered by user String s = String.valueOf(t.getText()); System.out.println(s); 

Else используйте setTeg (Edittext) n get editText, нажав кнопку getTag.

  String[] strings = new String[allEds.size()]; String[] strings1 = new String[allEdn.size()]; for(int i=0; i < allEds.size(); i++){ strings[i] = allEds.get(i).getText().toString(); strings1[i] = allEdn.get(i).getText().toString(); System.out.println("data in edittext name is " +strings[i]); System.out.println("data in edittext number is " +strings1[i]); } 

Для нескольких редакторов