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

时间:2018-06-09 15:48:47

标签: java android xml android-edittext textview

我想知道是否可以根据用户输入输出xml元素,例如editText和textView。例如,我制作一个简单的游戏应用程序,在应用程序中,您将进入一个新的活动,询问玩家的数量。根据输入(例如5),我想显示editText和textViews,这样玩家就可以获得名字。这是可能的Java,如果是这样,怎么样?

1 个答案:

答案 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来保存自己的数据,因此请自行保存并在重新创建时将其反馈。