Button 点击事件

本文介绍了如何在Android应用中创建自定义按钮样式,包括设置背景颜色、描边、圆角等,并展示了如何通过XML定义按压效果。此外,还详细讲解了两种设置按钮点击事件的方法,一种是通过`android:onClick`属性,另一种是在代码中设置监听器。同时,文中还提供了弹窗显示的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Button

点击跳转到另一个页面
在main中

 private Button mBtnTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBtnTextView = findViewById(R.id.btn_textview);
        mBtnTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //设置点击
                //跳转到Textview演示界面
                Intent intent = new Intent(MainActivity.this,TextViewActivity.class);
                startActivity(intent);

            }
        });
    }

xml中配置

 <Button
        android:id="@+id/btn_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"/>

自定义形状背景
drawable下创建(文件名bg_btn2) 选择shape
在这里插入图片描述
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#FF9900"/>
    <!--填充颜色-->

    <stroke
        android:width="5dp"
        android:color="#000099"
        />
    <!--描边-->

    <corners
        android:radius="15dp"/>
    <!--圆角-->
</shape>

在XML中直接引用

 <Button
        android:id="@+id/btn_2"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="按钮2"
        android:textSize="20sp"
        android:textColor="#0066FF"
        android:background="@drawable/bg_btn2"
        android:layout_below="@id/btn_1"
        android:layout_marginTop="20dp"
        />


自定义按压效果
新建selector
在这里插入图片描述

代码如下

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <!--按压时状态定义-->
        <shape>
            <solid android:color="#FFCF88"/>
            <corners android:radius="15dp"/>
        </shape>
    </item>
    <item android:state_pressed="false">
        <!--非按压时状态定义-->
        <shape>
            <solid android:color="#AA6600"/>
            <corners android:radius="15dp"/>
        </shape>
    </item>
</selector>

xml中直接引用即可

设置点击事件 一
弹窗
加入标签android:onClick=“方法名”

   <Button
        android:id="@+id/btn_3"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="按钮3"
        android:textSize="20sp"
        android:textColor="#0066FF"
        android:background="@drawable/bg_btn4"
        android:onClick="showToast"
        android:layout_below="@id/btn_2"
        android:layout_marginTop="20dp"
        />

方法需要在main中写

public class MainActivity2 extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }
    public void showToast(View view){
        Toast.makeText(this,"成功点击",Toast.LENGTH_SHORT).show();//设置点击事件(弹出窗)
        
    }
}
    

设置点击事件 二
(常用方法)
弹窗
直接在main方法中定义点击事件
button与textView同理

	private Button mBtn2;
    private TextView mTv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        mBtn2 = findViewById(R.id.btn_1);
        mBtn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity2.this,"~点击成功",Toast.LENGTH_SHORT).show();
            }
        });
        mTv1 = findViewById(R.id.tv_01);
        mTv1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity2.this,"~点击成功~",Toast.LENGTH_SHORT).show();
            }
        });
    }

xml中无需额外配置标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值