2015-06-03 5 views
-2

Я новичок в android. Теперь мне нужно знать, как получить текстовые значения всех edittext, которые добавлены динамически, когда пользователь нажимает кнопку добавления.Как получить весь текст из динамически добавленного edittext в android?

add.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
table = (TableLayout) findViewById(R.id.table); 
row = new TableRow(Material.this); 
table.setGravity(Gravity.CENTER); 
edit = new EditText(Material.this); 
edit.setWidth(135); 
edit.setHeight(35); 
edit.setBackgroundColor(Color.WHITE); 
row.addView(edit); 
table.addView(row); 

Здесь, как получить текстовые значения edittext? Пользователь может добавить несколько редакторов. В этом случае, как получить весь текст?

+0

Можешь ли вы опубликовать код? –

+0

PLZ показать, что у вас пробовал до сих пор –

+0

Я не пытаюсь. –

ответ

0

EditTexts создаются динамически с использованием ссылки, чтобы получить его значение.

Для примера

Я создал editText.

EditText myTextBox = new EditText(getBaseContext()); 
containerLayout.addView(myTextBox); 

Здесь myTextBox будет переменная, которая относится к этому editText, вы могли бы использовать getText(), чтобы получить значение этого блока или вы можете использовать setText(), чтобы установить значение в этом поле.

String value = myTextBox.getText().toString(); 
myTextBox.setText("this is the setted text");` 

EDIT

Если есть более чем один editText затем добавить все ссылки в массиве и перебирать их.

List<EditText> myArray = new ArrayList(); 
EditText editText1 = new EditText(getBaseContext()); 
containerLayout.addView(editText1); 
myArray.add(editText1); 

EditText editText2 = new EditText(getBaseContext()); 
containerLayout.addView(editText2); 
myArray.add(editText2); 

EditText editText3 = new EditText(getBaseContext()); 
containerLayout.addView(editText3); 
myArray.add(editText3); 
int i = 0; 
    while (i < myArray.size()) { 
     Log.i(TAG,myArray.get(i).getText()); 
     i++; 
    } 

enter image description here

+0

хорошо. если пользователь добавляет больше одного значка edittext? как получить все значения edittext? –

+0

Я не могу объявить Список –

+0

Могу ли я узнать, что это за ошибка –

2

Если динамически добавлены EditText, поддерживайте ссылки EditText в массиве и когда хотите, чтобы текст из них перебирал массив.

+0

u поделиться мне пример кода –

+0

Поделитесь кодом, как вы создаете динамические EditTexts ... – Chandrakanth

+0

Я отредактировал мой вопрос. PLS см. сейчас –

0

Вам нужно будет сохранить ссылку на этот динамически добавленный EditText.

И вызов getText(). ToString(); на этой ссылке.

Другой подход - установить некоторые идентификаторы с помощью setId(); вести учет этих идентификаторов и при необходимости.

((EditText)findViewById(edittextidyouset)).getText().toString(); 

Возьми взгляд на этих заходящие идентификаторы динамически нити: How can I assign an ID to a view programmatically?

1

Если вы создали редактирование текст и текст устанавливаются в редактировании текста, то:

String text = edittext.getText().toString(); 

будет хорошо.

+0

он не должен работать для динамически добавленного edittext. –

+0

можете ли вы написать код здесь, чтобы я мог проверить, как вы создаете текст редактирования и что вам нужно? –

0

Надеется, что это может помочь вы-

ArrayList<EditText> editTexts = new ArrayList<>(); 
     LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container); 
     for (int i = 0; i < 20; i++) { 
      EditText editText = new EditText(this); 
      editTexts.add(editText); 
      editText.setText("I am at " + i); 
      linearLayout.addView(editText); 
     } 
     for (EditText editText : editTexts) { 
      Log.d("Texts", editText.getText().toString()); 
     } 

Вашего файл XML может быть как-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:id="@+id/container" 
    android:orientation="vertical" 
    tools:context="com.hestabit.activity.Home"> 


</LinearLayout> 
Смежные вопросы