Flo*_*her 0 java android android-view
我正在尝试在我的 Android 应用程序中实现按钮点击处理。
在包含我的按钮的 XML 布局文件中,我向我的ButtonXML 元素添加了以下行:
android:onClick="handleClick"
Run Code Online (Sandbox Code Playgroud)
我还在Activity使用此布局的 中定义了具有以下签名的方法:
public void handleClick() { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
但是,当我使用此代码运行我的应用程序时,它崩溃了。我能够通过将我的方法签名更新为以下内容来修复此崩溃:
public void handleClick(View v) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么我需要包含这个View参数?
这是因为您可能希望将您的handleClick方法用于 XML 中的 2 个或更多按钮。
<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"/>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,可能不清楚哪个按钮触发了回调。将View v帮助您识别如
public void handleClick(View v) {
if (v.getId() == R.id.button1) {
} else if(v.getId() == R.id.button2) {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4321 次 |
| 最近记录: |