Как получить много данных из EditText с помощью пользовательского интерфейса программно - PullRequest
1 голос
/ 30 января 2012

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 ??

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

Ответы [ 2 ]

0 голосов
/ 30 января 2012

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

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

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

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

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

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

0 голосов
/ 30 января 2012

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

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

 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...