Ребята из 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??
Большое спасибо:)
Вы можете использовать метод 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();
}
}
Убедитесь, что вы очистите все неиспользуемые ссылки, потому что андроид имеет тенденцию быть негерметичным.
Попробуйте это просто псевдо-код, который я не тестировал
l=layout,getViews() for(Object o:l){ if(o instanceOf EditText){ EditText e=(EditText)o; e.getText() } }