我想知道是否可以根据用户输入输出editText和textView等xml元素。例如,我正在制作一个简单的游戏应用程序,在这个应用程序中,你会被带到一个新的活动,它会询问玩家的数量。基于输入(例如5),我想要显示editText和textViews,这样玩家就可以命名了。对于Java,这是可能的吗?如果可能,如何实现?
发布于 2018-06-09 16:06:37
当然是,但不必通过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保存自己的数据,以防Activity被破坏,所以请自己保存它们,并在重新创建时将它们反馈回来。
https://stackoverflow.com/questions/50775985
复制相似问题