Android Studio Button

本次Button内容我认为比较重要

首先对于Button属性来说他是TextView的子类

继承于TextView

但是比起TextView它增加了两个属性

1.textAllCaps 是否将英文字母转为大写,true表示自动转为大写 false表示不做转换

这里要提的是 TextView默认是保持原有的大小写且靠左对齐

而button是默认全部大写,且居中

2.Onclick属性 用于接管用户的点击动作,指定点击时触发哪个方法

这里要提的是Onclick其实已经过时了 新型的方法目前还没有学到

因此这里只谈Onclick

以下是一个案例

点击按钮获取文本和当前时间

复制代码
copy
<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="直接指定点击方法"
        android:textColor="@color/black"
        android:textAllCaps="false"
        android:textSize="17sp"
        android:onClick="doClick"/>

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="这里查看按钮的点击结果"
        android:textColor="@color/black"
        android:textSize="17sp"/>
复制代码

对于Button 点击后调用了一个名为doClick的方法 这个方法需要在xml对应的java文件中进行编写

复制代码
copy
package com.example.chapter03;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.example.chapter03.utils.DateUtil;

public class ButtonStyleActivity extends AppCompatActivity {

    private TextView tv_result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button_style);
        tv_result = findViewById(R.id.tv_result);
    }
    public void doClick(View view)
    {
        String desc = String.format("%s 您点击了按钮: %s", DateUtil.getNowTime(),((Button)view).getText());
        tv_result.setText(desc);
    }

}
复制代码

这里写了doClick方法 有几个点需要特别说明

1、tv_result = findViewById(R.id.tv_result);

这一行很显然是从xml中获取文本内容,但是为什么把它写在onCreate中而不是doClick方法中呢?

这里也是考虑到效率问题,如果写在onClick中 每次点击都要进行获取,点击次数多的情况下可能会出现问题

2、DateUtil.getNowTime()

这里其实是为了显示而写了一个获取当前时间的方法,便于我们直观看到结果,但是这个显示的方法似乎也可以用在以后的开发中

复制代码
copy
package com.example.chapter03.utils;

import java.text.SimpleDateFormat;
import java.util.Date;


public class DateUtil {

    public static String getNowTime()
    {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        return sdf.format(new Date());

    }

}
复制代码

3、(Button)view

首先,执行Onclick方法时传入的是按钮Button ,但是获取的参数是View类型,即Button类型父类的父类,View类型没有获取文本的能力,因此需要将其转换为Button类型 之后显示即可

 

 

 

posted @   Arkiya  阅读(73)  评论(0编辑  收藏  举报
相关博文:
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起