zoukankan      html  css  js  c++  java
  • 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也可,效果如下:

  • 相关阅读:
    CDQ分治·学习笔记
    高斯消元板子
    [HEOI2012]朋友圈
    [CTSC2008]祭祀
    Medium | LeetCode 140. 单词拆分 II | 回溯(递归)
    Hard | LeetCode 212. 单词搜索 II | 回溯 + 前缀树
    Medium | LeetCode 131. 分割回文串 | 回溯 + 动态规划预处理
    Hard | LeetCode 329. 矩阵中的最长递增路径 | 矩阵+DFS
    Hard | LeetCode 76. 最小覆盖子串 | 滑动窗口
    Medium | LeetCode 130. 被围绕的区域 | 矩阵 + DFS
  • 原文地址:https://www.cnblogs.com/yangdd/p/13285334.html
Copyright © 2011-2022 走看看