Android 安卓工作室-可以有一个功能“;“知道”;按下哪个按钮激活了它?
图像我有两个按钮,A和B。我有一个函数,叫做神秘()。按下按钮A和B时,都会激活神秘号(),但如果按下按钮A,神秘号()不知何故知道是按钮A激活了它,如果按下按钮B,神秘号()不知何故知道是按钮B激活了它。如果是按钮A激活了神秘(),神秘()将停止应用程序,但如果是按钮B激活了神秘(),神秘将给玩家100美元 这只是一个随机的例子,但基本上我要问的是:有没有办法传递哪个按钮触发了一个函数?我知道我可以有两个函数,mysteryA和mysteryB,前者链接到A,后者链接到B,只需复制和粘贴,每个函数都有细微的变化,但必须有更有效的方法来实现这一点 有什么想法吗?是的,这是可能的(这里是一个java示例) 以及您的xml:Android 安卓工作室-可以有一个功能“;“知道”;按下哪个按钮激活了它?,android,function,android-studio,android-intent,android-button,Android,Function,Android Studio,Android Intent,Android Button,图像我有两个按钮,A和B。我有一个函数,叫做神秘()。按下按钮A和B时,都会激活神秘号(),但如果按下按钮A,神秘号()不知何故知道是按钮A激活了它,如果按下按钮B,神秘号()不知何故知道是按钮B激活了它。如果是按钮A激活了神秘(),神秘()将停止应用程序,但如果是按钮B激活了神秘(),神秘将给玩家100美元 这只是一个随机的例子,但基本上我要问的是:有没有办法传递哪个按钮触发了一个函数?我知道我可以有两个函数,mysteryA和mysteryB,前者链接到A,后者链接到B,只需复制和粘贴,每个
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:onClick="myMethod"/>
<Button
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button3"
android:onClick="myMethod"/>
现在,在onClickListener中,myMethod
您可以访问一个视图
,通过该视图,您可以确定哪个按钮称之为- 功能能否“知道”按下哪个按钮激活它 是
- 有没有办法传递触发功能的按钮 是。有很多方法可以知道该功能是否由特定按钮触发
神秘(“A”)向其传递变量来触发神秘()代码>
按钮B通过神秘(“B”)
向其传递变量来触发神秘()
在函数内部
神秘:
private void mystery(String mode) {
System.out.println(mode); // Here mode contains A or B
}
方法2:现在您可以再次使用布尔类型的全局变量
private boolean按钮代码>
现在,在按钮A的单击侦听器中,您可以设置isButtonA=true
在按钮B的点击监听器中,您可以设置isButtonA=false代码>
这些只是几个简单的问题。如果我错过了一些更容易的,请随意提出一些建议;) 向按钮或某个已知字符串/int添加标记并将其传递到函数中?神秘(whichButton:String)您可以使用布尔值进行检查flag@Smashing另一位SA dev:DHmm好吧,我有点明白你在说什么。那么如何访问视图呢?比如(如果视图=某物)?或者我如何使用视图来确定哪个按钮称之为itUpdated,我想这就是我要问的。在我的更新中,我添加了一条注释,其中一种方法是使用view.getId
,这样你就可以用一个更好的例子来检查哪个视图的ID称之为itUpdated,很乐意帮助@Evan:)这是一个不错的答案,如果安卓系统还没有对它的支持,这可能就是解决问题的方法,但这是一个很好的答案:D
private void mystery(String mode) {
System.out.println(mode); // Here mode contains A or B
}