java如何高效地编程?按下按钮时,创建相应的活动
我是编程新手,所以我有一个非常简单的问题。因为我不知道这些术语,所以我找不到关于我的问题的任何主题,所以如果以前有人问过这个问题,请原谅
我的问题如下:我正在Android机器上运行一个用Eclipse创建的应用程序。在第一个屏幕上,我只有一个按钮列表:
主要布局图:
<Button
安卓:layout_width="fill_parent"
安卓:layout_height="fill_parent"
安卓:layout_weight="1"
安卓:text="@string/alpha"
安卓:onClick="alpha" />
<Button
安卓:layout_width="fill_parent"
安卓:layout_height="fill_parent"
安卓:layout_weight="1"
安卓:text="@string/beta"
安卓:onClick="beta" />
如果我按下按钮,则相应的活动将开始。为此,我对主要活动进行了如下编程:
主要活动:
public void alpha(View view) {
Intent intent = new Intent(this, AlphaActivity.class);
startActivity(intent); }
public void beta(View view) {
Intent intent = new Intent(this, BetaActivity.class);
startActivity(intent); }
由于我有很多按钮,我将有很多次的操作公共无效,如上所示。难道没有更有效的编程方法吗?例如:启动新活动,如果选择了alpha,则启动活动alpha,如果选择了beta,则启动活动beta,否则不执行任何操作
# 1 楼答案
有很多方法可以实现你的目标
注意:最好的解决方案是将
android:id
添加到布局文件中,但如果由于某种原因无法这样做,可以使用按钮文本一个非常简单(虽然不是很好)的方法是查看按钮上的文本(如果所有按钮都有唯一的文本),然后根据该文本执行操作,而不需要对布局文件进行太多更改
确保为布局文件中的每个按钮设置onClick以调用此方法
# 2 楼答案
您可以为每个按钮提供如下id:
然后在主活动中,您可以findviewbyid()来查找这两个按钮并给出按钮onclicklistener,然后实现onclicklistener,如下所示:
希望有帮助
# 3 楼答案
对于您的特定情况,您可以更改处理按钮调用的方式,例如,您可以在单个方法中提供按钮ID并检查按钮ID
然而,我建议您当前的代码是清晰简洁的,所以请保持原样。解决问题的方法有很多,特别是在设计软件时
但是,一般来说,编程语言试图在使代码(更重要的是它的功能或用途)易于阅读/理解的同时尽量保持语法简洁。随着时间的推移,您将了解每种语言及其语法的优缺点,有些语言将更擅长解决某些类型的问题,而有些语言过于冗长,无法解决其他类型的问题。现在,只需了解Java是如何工作的,并试着理解为什么他们实现了每个关键字和语法元素
# 4 楼答案
您可以对每个按钮应用相同的侦听器,但不确定它是否更有效,或者是更好的样式,但这可能会起作用。比如:
^{pr 1}$
并在XML中指定相应的id作为下一个应答状态
# 5 楼答案
有许多不同的方法来实现这一点,并使之更简单。没有一种方法是“最好的”。你正在做的可能是“我不想做的事”
不要在XML中分配内容,它更难使用,在运行时无法真正更改,并且在需要维护许多不同的布局时使其不易移植。相反
这只是一种方法:
不要在XML中定义onClick方法,而是以编程方式进行
将android id添加到您的视图中:
(所有其他按钮均相同)
{cd1}和{cd2}使用的是相同的
在}方法中的
Activity
{您可以获得对每个按钮的引用:
现在,您的活动应该是:
在您的活动中,您必须实施: