我有一个Button
,它是用XML定义的。我使用android:onClick
来调用名为showMessage
的方法。简单的方法示例:
public void showMessage(View v){
Log.w(TAG, "Hi");
}
现在假设我的方法需要例如布尔和 int 作为参数,如何执行以下操作:
android:onClick="showMessage(boolean isExpensive, int money)"
答案 0 :(得分: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"
/>
并在你的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
}
答案 1 :(得分:1)
使用onclicklistener会不会更容易?
定义id为
的按钮 <Button
android:id="@+id/button1"
/.. more attributes here ../
android:text="@string/something" />
并在您的活动中:
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.w(TAG, "Hi");
}});
答案 2 :(得分:0)
你可以这样做: 在没有参数的activity.java中定义另一个函数。 通过单击按钮调用此功能。
使用您想要传递的参数来实现您的实际功能。
public void showMessageToClick(View v){
// define your bool as per your need
boolean isExpensive = true;
int money=30000;
showMessage(isExpensive, money)
Log.w(TAG, "Hi");
}
showMessage(boolean isExpensive, int money){
// your code here
}