Android Studio - 可以按哪个按钮激活功能 "know"吗?

标签 android function android-studio android-intent android-button

Image 我有 2 个按钮,A 和 B。我有一个函数,叫做 mystery()。按下按钮 A 和 B 时,都会激活 mystery(),但是如果按下按钮 A,mystery() 不知何故知道是按钮 A 激活了它,如果按下了按钮 B,mystery() 不知何故知道它是按钮B 激活它。如果是按钮 A 激活了 mystery(),mystery() 将停止应用程序,但如果是按钮 B 激活了 mystery(),mystery 将给玩家 100 美元。

这只是一个随机的例子,但基本上我要问的是:有没有办法将触发的按钮传递给一个函数?我知道我可以有两个函数,mysteryA 和 mysteryB,其中前者链接到 A,后者链接到 B,只需复制和粘贴,每个函数都略有不同,但必须是一种更有效的方法。

有什么想法吗?

最佳答案

是的,这是可能的(这是一个 java 示例)

public class abc extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.example);
    }

    public void myMethod(View view) {
         //here, you can use something like view.getId() or anything else to identify which view called this method
      //you could do something like this :

     if (view.getId() == R.id.button2) {
         giveALocalNobody100Dollars();
     }else if (view.getId() == R.id.button3){
         giveItToHimEitherWayHeDeservesIt();
     }
    }
}

和你的 xml:

<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 中,您可以访问一个 View ,并且通过该 View ,您可以确定哪个按钮调用了它

关于Android Studio - 可以按哪个按钮激活功能 "know"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471465/

相关文章:

android - Circle CI Automated for Android 项目无法构建 APK 文件且未安装到设备中

javascript - 级联 JS 函数 - 如何将变量从一个函数传输到另一个函数

c++ - 将带有函数指针数组的结构复制到设备

java - 如何使用StringUtils和myString,获取无法解决错误

android - 在 Android Studio 中使用外部 JAR 文件

java - 关于 Android TV 中的 EPG 数据

Android:高效地将包含数千个文件的 zip 从 Assets 复制到内部存储

java - 滑动刷新覆盖在 webview 中滚动我的网页中的菜单

android - React-Native:无法在 API 16 设备上运行应用程序。无法读取 null 的属性 'length'

ios - 防止子类覆盖 Swift 中的继承函数