方法一:通过在布局文件中添加 android:onClick 属性
在文件 res > layout > activity_main.xml 中,将 android:onClick 属性添加到 元素,如下所示:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
这样就相当于添加了一个名为send的按钮(button_send的字符串资源在value>string中设置)每次用户点击按钮时,此属性均会提示系统调用 Activity 中的 sendMessage() 方法。
然后在源代码中定义sendMessage函数
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
// Do something in response to button
}
}
要让系统将此方法与为 android:onClick 指定的方法名称匹配,签名必须与所示内容完全相同。具体而言,该方法必须:
1.是公共方法
2.具有空返回值
3.以 View 作为唯一参数(这将是之前点击的 View)
方法二:在.java文件中添加一个OnClickListener
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.sendButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendMessage(view);
}
});
}
这样,当用户点击id为sendButton的按钮时,将会调用sendMessage函数