【问题标题】:Outputting editText and textViews based off user input?根据用户输入输出editText和textViews?
【发布时间】:2018-06-09 15:48:46
【问题描述】:

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

【问题讨论】:

  • 您可以使用 Views 的可见性属性在 GONE 和 VISIBLE 之间切换来隐藏或显示 Layout 中定义的视图。

标签: java android xml android-edittext textview


【解决方案1】:

当然可以,尽管不必通过 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 被销毁,因此请自行保存并在重新创建时将其反馈回来。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
  • 2019-07-10
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多