安卓 android:onClick与setOnClickListener区别

先说区别:

两种方式底层一样,只是使用onClick需要注意:

  1. 事件处理函数必须是public的。

  2. 事件处理函数必须在Activity中定义。

  3. 事件处理函数必须有一个View类型的参数。

  4. 只能用在API Level 4及以后的版本。

1.onClick方法:在Xml中添加onClick属性

XML 复制代码
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/mybutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Press Me"
        android:onClick="buttonClick"/>
</RelativeLayout>

在代码中添加对应的函数buttonClick,注意要添加到当前Activity对应的java类中。

java 复制代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void buttonClick(View view) {
        Toast.makeText(this, "Button was clicked", Toast.LENGTH_SHORT).show();
    }
    
    // ....
}

2.setOnClickListener方法

java 复制代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button)findViewById(R.id.mybutton);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "Button was clicked", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
相关推荐
取码网1 小时前
2025最新口红机防篡改版本源码
android·java·javascript
2501_915918411 小时前
iOS 混淆流程 提升 IPA 分析难度 实现 IPA 深度加固
android·ios·小程序·https·uni-app·iphone·webview
4311媒体网1 小时前
织梦CMS二开实战:打造智能化的审核定时发布功能
android
亿坊电商1 小时前
亿坊·零售连锁门店管理系统|全渠道一体化-独立部署_提升经营管理效率!
android·零售
TO_WebNow2 小时前
tp5部署宝塔遇到的问题
android·ide·php·android studio
2501_915909063 小时前
React Native 上架 App Store:项目运行与审核构建的流程
android·ios·小程序·https·uni-app·iphone·webview
jinanwuhuaguo3 小时前
最新更新版本,OpenClaw v2026.4.2 深度解读剖析:Task Flow 重磅回归与安全架构的全面硬化
android·开发语言·人工智能·回归·kotlin·安全架构·openclaw
匆忙拥挤repeat3 小时前
Android Compose 状态:核心api,状态恢复,状态提升,状态容器
android
千里马学框架3 小时前
干货分享:车载音频audio调试开发之dumpsys CarAudioService剖析
android·音视频·面试题·audio·系统开发·车载audio·framework工程师
私人珍藏库3 小时前
[Android] Bilibili音乐播放器Biu安卓版,适配手机-平板-汽车
android·智能手机·电脑