Конечно, но без необходимости проходить через XML.Передайте количество игроков для следующего действия в качестве аргумента.Затем убедитесь, что у вас есть ViewGroup (например, LinearLayout) в макете второго действия.
Затем выполните цикл и динамически создайте представления:
ViewGroup container = findViewById(R.id.linearLayout);
for( int i = 0; i < numberOfPlayers; i++ ){
EditText et = new EditText(this);
et.setHint(R.string.new_player_hint);// String providing a hint to the user
container.addView(et);
}
Вы можете поместить EditTexts в списокили, если это все, что у вас есть, вы можете напрямую переключаться между дочерними элементами ViewGroup, чтобы потом получить их значения:
for( int i = 0; i < container.getChildCount(); i++ ){
String playerName = ((EditText) container.getChildAt(i)).getText().toString();
}
Если у вас будет много возможных игроков, вам следует заключить LinearLayout в ScrollView..
Поскольку вы, вероятно, будете использовать это в onCreate, помните, что вы не можете полагаться на EditText для сохранения своих собственных данных в случае, если действие уничтожено, поэтому сохраняйте их самостоятельно и возвращайте их при повторном выполнении.создание.