我是android的新手,我正在处理以下问题。我需要创建一个按钮,将另外两个具有相似功能的按钮组合在一起(类似于子菜单)。因此,假设我们有一个名为“搜索”的按钮,通过点击它,搜索按钮应该消失,并且应该在屏幕上看到两个按钮(例如“google”和“bing”)。
所以,我的想法是以相同的布局编程管理所有三个按钮,而不是创建一个新的(临时)布局,只是为了显示和处理这两个按钮。就像一台状态机。更确切地说,它会是这样的:
我们按下“搜索”按钮。 onClick(View)确定我们在主屏幕上的位置(mode = mainmenu),将搜索按钮重命名为“google”并创建名为“bing”的第二个按钮,或者(mode = submenu)然后调用按钮的功能到期搜索按钮已重命名为“google”...
按下后退按钮onBackPressed()检查我们是否在子菜单(mode =子菜单)中然后隐藏“bing”按钮并将“google”重命名为“search”,否则我们在主菜单中(mode = mainmenu),完成活动。
这有意义吗?此外,这将产生大量代码,其中按钮和(子)菜单数量不断增加,以及进一步更改的可维护性更差。
谢谢!
P.S。对不起,如果我的英语很糟糕(不是我的母语); - )
答案 0 :(得分:0)
代码太多,需要进行太多的调试,所以我认为,更好的方法就是创建一个新的布局。
答案 1 :(得分:0)
如果您遇到性能问题或者预计会出现性能问题(由于GUI的复杂性),那么这可能是有意义的。但如果没有,代码简单性比性能略有提高更为重要。
答案 2 :(得分:0)
您可以创建一个按钮,该按钮在按下“搜索”按钮之前保持不可见(确切地说),并重命名原始搜索按钮。它可以工作,如果你在xml中设置布局,它将更容易实现。它还为您提供了预览,显示它的外观。以编程方式显示小部件将具有难以维护的代码。
但是,更改按钮文本的设计不是一个好设计。首先,当按下“搜索”时,改变其文本是非常混乱的。我个人建议你弹出一个选择对话框。或者只是在第一个地方显示两个搜索按钮,除非你真的没有两个按钮的位置。