Android开发笔记(四)——Button

Button继承自TextView,是TextView的子类。

在要设计的界面添加Button:

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

其中 match_parent 是匹配父空间, wrap_content 是包含文字内容。
接下来在对应的activity的java代码 MainActivity.java 中声明该Button,

private Button mBtnButton;

添加一个新的activity名称叫 ButtonActivity ,此时 AndroidMainfest.xml 中会自动添加如下声明:

<activity android:name=".ButtonActivity"></activity>

如果没有添加则要自己手动添加,否则会跳转失败。

之后要在 MainActivity.java 中的 onCreate 函数中使用 findViewById 找到该button,接着设置一个点击事件,使其点击之后跳转到新的界面:

mBtnButton=findViewById(R.id.btn_button);
mBtnButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //跳转到Button的演示界面
        Intent intent=new Intent(MainActivity.this,ButtonActivity.class);
        startActivity(intent);
    }
});

文字大小、颜色

之前在TextView中的一些属性在这里同样适用:
例子:

<Button
    android:id="@+id/btn_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮1"
    android:textSize="30sp"
    android:textColor="#000080"
    android:background="#D8BFD8"
    />

效果:

自定义背景形状

矩形四周圆角

  • drawable 中可以自定义一些xml文件。
  • 右键 drawable ——> new ——> Drawable Resource File ,Root element设置为shape,如下图:
  • bg_btn2.xml 中的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#9370DB"/>

    <corners
        android:radius="10dp"/>

</shape>

activity_button.xml 中的代码和效果如下:

有描边带圆角

还有很多效果可以自定义。

自定义按压效果

  • 右键 drawable ——> new ——> Drawable Resource File ,Root element设置为selector,如下图:


效果展示:

点击事件

调用方法

添加属性:

android:onClick="showToast"

showToast 是自己起的方法的名字,想要实现点击出现提示信息的功能。

ButtonAvtivity.java 中添加 showToast 的实现代码:

    public void showToast(View view){
        Toast.makeText(this,"您没有访问该项目的权限!",Toast.LENGTH_SHORT).show();
    }

效果展示:(这里AVD启动太慢了,直接在真机上运行的)

不过通常不会在布局中写 onClick 的属性,一般都采用下面的方法。

使用代码

这里对按钮3来进行测试。

来在对应的activity的java代码 ButtonActivity.java 中声明该Button,

private Button mBtn3;

之后要在 ButtonActivity.java 中的 onCreate 函数中使用 findViewById 找到该button,接着设置一个点击事件,实现点击出现提示信息的功能,具体代码如下:

mBtn3.findViewById(R.id.btn_3);
mBtn3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(ButtonActivity.this,"没有访问该项目的权限!",Toast.LENGTH_SHORT).show();
    }
});

这里不知道为什么在真机和Avd中运行,点击按钮都会闪退。。。

基本上所有的控件都可以设置点击事件,比如说TextView也可,效果如下:

原文地址:https://www.cnblogs.com/yangdd/p/13285334.html