Как получить много данных из EditText с помощью пользовательского интерфейса программно

1

Ребята из Halo,

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

Здесь код

    public class UIThroughCode extends Activity {

            static int dx3;
            public static void setkriteria(String d2, String d3){
             dx2 = Integer.parseInt(d2);
             dx3 = Integer.parseInt(d3);
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

        // Params for views
        LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

        // create a layout
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);

        //here my question, how to get data from EditText ?? 
        for (int i = 0; i <dx3; i++)
                {
            EditText et = new EditText(this);
            et.setLayoutParams(params);
            layout.addView(et);
        }

        // Create a Button
        Button btn = new Button(this);
        btn.setText("This is a Button");
        btn.setLayoutParams(params);

        // Add the button
        layout.addView(btn);

        // Create a layout param for the layout
        LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

        this.addContentView(layout, layoutParam);
    }
}

Я получал строку данных d2 и d3 из другого класса и анализировал их в Integer. вот мой вопрос, как получить данные из всего EditText??

Большое спасибо:)

  • 0
    Я не знаю, если это ваш вопрос, но Integer.parseInteger (EditText.getText (). ToString)) может сработать
Теги:
user-interface
android-layout

2 ответа

0

Вы можете использовать метод getText() как указано в API.

Если вам нужно получить ВСЕ тексты из всего вашего EditText вы можете сохранить ссылку на весь ваш EditText в List например:

List<EditText> = new ArrayList<EditText>();

и просто перебирать их или вы можете перебирать LinearLayout Children следующим образом:

for(int i = 0; i < layout.getChildCount(); i++) {
  if(layout.getChildAt(i) instanceof EditText) {
    String text = ((EditText)layout.getChildAt(i)).getText();
  }
}

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

  • 0
    хорошо, спасибо большое, я сейчас пытаюсь
  • 0
    Скажите, сработало ли это или нет.
0

Попробуйте это просто псевдо-код, который я не тестировал

l=layout,getViews()
for(Object o:l){
 if(o instanceOf EditText){
  EditText e=(EditText)o;
  e.getText()

 }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню