【问题标题】:Can i call method name "onClick" or "onclick" using android:onClick button attribute?我可以使用 android:onClick 按钮属性调用方法名称“onClick”或“onclick”吗?
【发布时间】:2020-06-26 13:01:40
【问题描述】:

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”的方法吗?

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

【问题讨论】:

    标签: java android xml methods attributes


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        是的。

        当用户点击一个按钮时,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. 公开
        2. 返回无效
        3. 将视图定义为其唯一参数(这将是被点击的视图)

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

        【讨论】:

        • android:onClick="onCLick" 会调用事件处理程序 onClick() 方法吗?还是会有所不同?
        • 如果我正确理解了您的问题,android:onClick="onCLick" 会为按钮附加一个事件处理程序,当单击该按钮时它会调用 onClick 方法。
        猜你喜欢
        • 2013-07-25
        • 2021-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-23
        • 1970-01-01
        相关资源
        最近更新 更多