【问题标题】:How to dynamically add edit text boxes when button is clicked?单击按钮时如何动态添加编辑文本框?
【发布时间】:2011-12-17 18:38:31
【问题描述】:

如何实现一个按钮,以便在每次点击时动态添加一个新的 TextBox?

【问题讨论】:

  • 我基本上有一个按钮位于我的 xml 文件中.. 据我所知..我有一个线索,我必须在点击事件中做一些事情......但这就是我卡住的地方。 EditText ed = new EditText(context); view.addView(ed);所以我要运行一个循环吗?但是使用循环我将定义编辑文本框的数量..但我想一个一个添加..所以基本上它就像一个加号按钮..
  • 看看here
  • 他在这里定义了编辑文本框的最大数量..我不想要那个..我希望每次单击按钮时..应该出现编辑框..

标签: android


【解决方案1】:

如果您只是并且总是想在按下按钮时将两个编辑文本小部件添加到您的活动中,您可以执行类似这样的操作(伪代码)。这假设您永远不想在按钮旁边有两个以上的编辑文本组件。

<LinearLayout orientation="horizontal">
   <Button >
   <EditText id="@+id/et1" visibiltiy="gone" />
   <EditText id="@+id/ed2" visibiltiy="gone" />
</LinearLayout>

在按钮的 onClick 监听器中,您可以通过调用将组件可见性更改为可见

findViewbyId(R.id.et1).setVisibility(Visible)
findViewbyId(R.id.et2).setVisibility(Visible)

【讨论】:

  • 嗯好吧有点道理...所以每次我点击按钮时两个编辑框都会弹出对吗?
  • 其实在你第一次按下按钮的时候它们就会弹出来,并一直停留在那里。您希望它们消失,还是添加更多 EditText?也许您可以解释您的全部问题以及您要做什么?
  • Dimitris Makris 在这方面帮助了我。 :) 如果我需要更多帮助,我肯定会用我的代码向你发送消息 :)
【解决方案2】:

This is my earlier post.

您需要使用 EditText 而不是 TextView。

希望这对你有帮助。

【讨论】:

    【解决方案3】:

    你应该有这样的东西:

    Button mButton = (Button) findViewById(R.id.my_button);
    mButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText t = new EditText(myContext);
            t.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            root.addView(t);
        } 
    });
    

    root:是要添加 EditText 的根布局。

    myContext: 可以是活动等。

    希望这会有所帮助!

    【讨论】:

    • 我们不需要在某个地方定义根吗?抱歉,我知道 android.. 谈到动态时我不是很舒服...
    • 是的,在你调用 setContentView(/*Your layout*/) 之后,假设你的 xml 根有一个 LinearLayout,你应该这样做: LinearLayout root = (LinearLayout) findViewById(R.id .root_layout);
    • ok 将尝试实现这个.. 它的夜晚将在早上尝试实现这个.. 非常感谢.. 希望我能解决它.. 将尽快发布代码.. 如果有任何问题.. :)
    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多