使用android:onClick in XML需要参数的调用方法

tax*_*axo 3 xml android onclick

我有一个Button,它是用XML定义的.我android:onClick用来调用一个叫做的方法showMessage.简单方法示例:

    public void showMessage(View v){
    Log.w(TAG, "Hi");
    }
Run Code Online (Sandbox Code Playgroud)

现在假设我的方法需要例如booleanint作为参数,如何做以下的事情:

android:onClick="showMessage(boolean isExpensive, int money)"

小智 9

无法像您一样传递参数,但您可以使用标记:

<Button 
    android:id="@+id/btn1"
    android:tag="false,25"
    android:onClick="showMessage"
/>

<Button 
    android:id="@+id/btn2"
    android:tag="true,50"
    android:onClick="showMessage"
/>
Run Code Online (Sandbox Code Playgroud)

在你的java中:

public void showMessage(View v) {
    String tag = v.getTag().toString();
    boolean isExpensive = Boolean.parseBoolean(tag.split(",")[0]);
    int money = Integer.parseInt(tag.split(",")[1]);
    this.showMessage(isExpensive, money);
}

public void showMessage(boolean isExpensive, int money) {
    // Your codes here
}
Run Code Online (Sandbox Code Playgroud)