当前位置: 首页 > 面试题库 >

在Android中动态创建/删除按钮

上官彬
2023-03-14
问题内容

首先,我很抱歉如果这个答案已经在这里,因为我已经搜索了几个星期,还没有找到任何东西。

我正在开发一个Android应用,该应用需要允许用户创建和删除按钮。我知道如何通过将按钮添加到XML文件并在JAVA文件中创建其功能来正常静态地创建按钮。

相反,我有一个静态按钮,我将其称为“创建按钮”。当用户按下“创建按钮”时,应该给他们选择向当前活动添加新按钮的选项,允许他们更改该按钮的标题等。他们添加的按钮应该仍然存在。同样,应为他们提供删除按钮的选项。

有人可以指出我正确的方向吗?就像我第一次提到的那样,我遇到的大多数资源都只解释了如何静态创建按钮。

谢谢您的帮助!

编辑:我能够根据我得到的反馈找出一些东西。

到目前为止,我在onOptionsItemSelected()方法中具有以下代码:

    if (id == R.id.add_button) 
        {
        Button myButton = new Button(this);
        myButton.setText("Push Me");
        //myButton.setVisibility(View.VISIBLE);
        return true;    
        }

我对如何将其添加到布局仍然有些困惑。主要是,我对findViewById调用感到困惑:

    RelativeLayout layout = (RelativeLayout)findViewById(R.id.?);

我应该使用哪个编号?在应用程序的主XML文件中,布局本身没有ID。这只是一个“ RelativeLayout”。

编辑2:

实际上,我解决了这个问题。谢谢你的建议!我只需要在XML文件中给我的布局一个ID。我知道我可以给按钮等一个ID,但是从来不知道我能够为实际的布局本身设置ID!


问题答案:

创建一个按钮-

Button myButton = new Button(this);

向其添加文本-

myButton.setText("Push Me");

要使按钮可见,您需要将其添加到这样的视图中。您也可以将其添加到静态创建的视图中-

LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

ll.addView(myButton, lp);

卸下按钮-

ll.removeView(myButton);

有关其他定制,请参阅文档。

如果要创建多个按钮,则建议设置ID。[这个http://codingdict.com/questions/159488)例子很清楚。

为了在关闭应用程序后使按钮可见,您需要将数据存储在内存中。最简单的方法是保持按钮及其规格的记录,并在关闭应用程序之前存储它们。打开应用程序后,您可以读取存储的数据并相应地创建按钮。

有关更多详细信息,请检查数据存储。



 类似资料:
  • 我编写了上面的代码来动态创建文本字段和按钮;但现在我需要删除两个文本字段和一个按钮时,按钮被点击。我该怎么做?

  • 我想实现一个功能,使用Swift 3.0将整个表单元格扫走。比如如何在iOS10的邮件应用程序中滑动删除。 重要的是要注意,我不是指滑动以显示删除按钮,然后处理删除。我的意思是用户可以在屏幕上从右向左滑动来删除。(还要注意,tableView是静态的,而不是动态的) 我必须为此实现UISWipleTestureRecognitor吗?

  • 我动态创建了按钮。 我知道用以下代码单击了哪个按钮; 然而,在这种情况下,我无法知道按钮的名称。因为按钮的名字可以是任何东西。我怎么知道按下了哪个按钮?提前感谢!

  • 它的“创建动态”按钮位于一行中 但我想把它分成三行。如果我有30个按钮,那么它应该在第一行的10个按钮中显示,然后在第二行的10个按钮和第三行的10个按钮中显示 O/P按钮为: b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15

  • 我正在用android创建一款纸牌游戏(21点)。前两张卡是easy card1和card2,但是我想按一下“点击我”按钮,发一张新卡,并将其分配给card3、card4等。有没有任何方法可以做到这一点,而无需创建所需的最大变量数,并使用if-then语句检查它们是否被分配了值?