根据用户输入输出 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 被破坏,所以您自己保存它们并在重新创建。
我想知道是否可以根据用户输入输出 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 被破坏,所以您自己保存它们并在重新创建。