2014-05-03 2 views
-4

Например, если:Возможно ли создать список полей формы из массива в Android?

String[] formFields = {"name","description","notes"}; 

Могу ли я создать список EditText полей в Android, используя этот массив вместо жесткого кодирования поля EditText?

+0

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

+0

Извините, я начинающий Java и Android и просто пытаюсь научиться этому. В последний час я искал googled, пытаясь найти пример о том, как это сделать, но не смог найти никаких примеров. – sjsc

+0

Вскоре напишу правильный ответ. –

ответ

1

Вы можете сделать что-то вроде этого:

String[] array = new String[] { "A", "B", "C" }; 

int previousId = 0; 

// Loop through all the Strings in the array 
for(int i = 0; i < array.length; i++) { 

    // Get the text from the array 
    String text = array[i]; 

    // Create a new EditText 
    EditText editText = new EditText(context); 

    // To add the Rules for the position of the views later on we need to define an id. 
    // In this case I assign the index in the array as Id, but in your app you should define 
    // ids in values/ids.xml like this: <item name="firstEditText" type="id" /> and use these 
    editText.setId(i + 1); 

    // Set the text for the new EditText 
    editText.setText(text); 

    // Create the LayoutParams 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

    // Add the rules where to place the view. 
    if(i == 0) { 

     // The first EditText will be placed at the top of the parent. 
     params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

    } else { 

     // All EditTexts after the first one are placed below the previous one. 
     params.addRule(RelativeLayout.BELOW, previousId); 

    } 

    // We save the id of this EditText so we can position the next EditText below it. 
    previousId = editText.getId();  

    // Add the view to your layout - in this case a RelativeLayout - with the LayoutParams we defined above 
    relativeLayout.addView(editText, params); 
} 
+0

Это замечательно! Большое спасибо Xaver! – sjsc

+0

Возможно ли, что вы просто поддержали мои ответы? Хотя я понимаю, что это не принесет много пользы. Эта практика, которая называется последовательной приостановкой, подпадает под мошенничество с голосованием и неодобрительно. Он будет автоматически отменен в течение следующих 24 часов. Для этого нет наказания, но если вы продолжите заниматься таким поведением, вы можете быть заблокированы или столкнуться с другими ограничениями. [Здесь вы можете найти дополнительную информацию о серийном выкупе] (http://meta.stackexchange.com/a/126857). Есть и другие варианты, чтобы вознаградить ответчика за выживание и принятие, как система бонусов. –

+0

Будучи новичком, я действительно читал ваши другие ответы на Android, ожидая ответа. Должен ли я удалить эти голоса? – sjsc

Смежные вопросы