我想知道是否可以根据用户输入输出xml元素,例如editText和textView。例如,我制作一个简单的游戏应用程序,在应用程序中,您将进入一个新的活动,询问玩家的数量。根据输入(例如5),我想显示editText和textViews,这样玩家就可以获得名字。这是可能的Java,如果是这样,怎么样?
答案 0 :(得分:0)
当然可以,但无需通过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();
}
如果你有很多可能的玩家,你应该在ScrollView中包装LinearLayout。
因为您可能会在onCreate中使用它,所以请记住,如果活动被销毁,您不能依赖EditText来保存自己的数据,因此请自行保存并在重新创建时将其反馈。