根据用户输入输出 editText 和 textViews?

Outputting editText and textViews based off user input?

我想知道是否可以根据用户输入输出 xml 元素,例如 editText 和 textView。例如,我正在制作一个简单的游戏应用程序,在该应用程序中,您会被带到一个新的 activity,它会询问玩家数量。根据输入(例如 5),我想显示 editText 和 textView,以便可以为玩家命名。 Java 可以吗?如果可以,怎么做?

当然可以,但不必经过 XML。 将玩家数量作为参数传递给下一个 activity。然后确保在第二个 activity 的布局中有一个 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);
}

您可以将 EditText 放入列表中,或者如果仅此而已,您可以直接遍历 ViewGroup 的子项以稍后获取它们的值:

for( int i = 0; i < container.getChildCount(); i++ ){

    String playerName = ((EditText) container.getChildAt(i)).getText().toString();

}

如果您要有很多可能的播放器,您应该将 LinearLayout 包装在 ScrollView 中。

因为您可能会在 onCreate 中使用它,请记住您不能依赖 EditText 来保存它自己的数据以防 Activity 被破坏,所以您自己保存它们并在重新创建。