我可以使用 android:onClick 按钮属性调用方法名称 "onClick" 或 "onclick" 吗?

Can i call method name "onClick" or "onclick" using android:onClick button attribute?

Xml 文件:

 <RelativeLayout 
        xmlns:android="http:// schemas.android.com/apk/res/android"
        xmlns:app="http:// schemas.android.com/apk/res-auto"
        xmlns:tools="http:// schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.sample.MainActivity" > 
      
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button_send"
            android:onClick="onClick"/> 
    </RelativeLayout>

Java 文件:

MainActivity.java:
public class MainActivity extends AppCompatActivity{
  
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main);
    } 

    public void onClick(View view) 
    { 
        switch (view.getId()) { 
        case R.id.button_send: 
            // Do something 
        } 
    } 
}

那么我可以使用 android:onClick 属性调用名为“onClick”或“onclick”的方法吗?

这个方法究竟是如何工作的?

当然可以。在 XML 文件中,android:onClick="onClick" 表示单击按钮时应该 运行 的函数名称 'onClick'。由于您已经在 java 文件中定义了该函数,因此应该没有任何问题。

是的。

当用户单击按钮时,Button 对象会收到一个单击事件。

要定义按钮的单击事件处理程序,请将 android:onClick 属性添加到 XML 布局中的元素。此属性的值必须是您要调用以响应单击事件的方法的名称。承载布局的 Activity 必须实现相应的方法。

    /** Called when the user touches the button */
    public void sendMessage(View view) {
        // Do something in response to button click
    }

您在 android:onClick 属性中声明的方法必须具有如上所示的签名。具体来说,该方法必须:

  1. 成为public
  2. Return无效
  3. 将视图定义为其唯一参数(这将是被单击的视图)

来源:https://developer.android.com/guide/topics/ui/controls/button

可以。 创建一个任意名称的方法,并提供一个 View class 的对象作为形式参数。在此方法中编写您希望在用户单击按钮时执行的代码。 在设计 window 中,如果您单击所需的按钮,您将在右侧窗格中找到 onClick 选项。单击它旁边的下拉箭头,您可以看到按下按钮时可以调用的方法列表。 Select 所需的方法。或者,您可以直接在此处输入方法名称。