我正在尝试在我的 Android 应用程序中实现按钮点击处理。
在包含按钮的 XML 布局文件中,我将以下行添加到我的 Button
XML 元素中:
android:onClick="handleClick"
我还在使用此布局的 Activity
中定义了一个具有以下签名的方法:
public void handleClick() { /* ... */ }
但是,当我使用此代码运行我的应用程序时,它崩溃了。我能够通过将方法签名更新为以下内容来修复此崩溃:
public void handleClick(View v) { /* ... */ }
但我不明白为什么需要包含此 View
参数?
最佳答案
这是因为您可能希望对 XML 中的 2 个或更多按钮使用 handleClick
方法。
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="handleClick"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="handleClick"/>
在这种情况下,可能不清楚哪个按钮触发回调。 View v
可帮助您识别,例如
public void handleClick(View v) {
if (v.getId() == R.id.button1) {
} else if(v.getId() == R.id.button2) {
}
}
关于java - Android Studio中 "View v"的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45270991/