Android学习之按钮屏蔽恢复

刚学到按钮的屏蔽与恢复,感觉涉及到对xml属性的一些调整,在这里记录一下

目录

测试样式

一、布局

二、java类

最后测试一下


测试样式

一、布局

 要做成这样的样式,首先简单的思路就是线性布局,两个线性布局嵌套,一个垂直线性布局(布局1)嵌套一个水平线性布局(布局2),在布局1内布局2外还有一个按钮和文本显示框,布局2内两个按钮权重相同就可以了~

代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ButtonSelect">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         >
         <Button
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:id="@+id/bsb1"
             android:text="开启开关"
             android:textSize="30sp"
             />
         <Button
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:id="@+id/bsb2"
             android:text="关闭开关"
             android:textSize="30sp"
             />

     </LinearLayout>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/bsb"
        android:text="点击测试开关"
        android:textSize="30sp"
        android:enabled="false"
        android:background="#000000"
        />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="此处显示开关结果"
        android:id="@+id/tv_result"
        android:textColor="#ff00ff"
        android:textSize="50sp"
        />


</LinearLayout>

二、java类

日常经典的绑定步骤

这两个用到不只一个方法,搞成全局变量

Button bsb;
TextView tv;
bsb =findViewById(R.id.bsb);
Button bsbenable =findViewById(R.id.bsb1);
Button bsbdisable =findViewById(R.id.bsb2);
tv=findViewById(R.id.tv_result);

注册监听事件

bsb.setOnClickListener(this);
bsbenable.setOnClickListener(this);
bsbdisable.setOnClickListener(this);

这些都是再oncreate方法里的,绑定监听我们还需要把整个java类继承监听

public class ButtonSelect extends AppCompatActivity implements View.OnClickListener {
.......
......
....



}

继承完以后下面会自动出现onclick方法,在onclick方法内进行判读对xml属性进行更改

if(v.getId()==R.id.bsb1){
    bsb.setEnabled(true);
    bsb.setTextColor(BLACK);
}else if (v.getId()==R.id.bsb2){
    bsb.setEnabled(false);
    bsb.setTextColor(GRAY);
}else if(v.getId()==R.id.bsb){
    String s= String.format("%s 您点击了  %s",DateUtil.getNowTime(),((Button)v).getText());
    tv.setText(s);
}

(试过用switch,但是不知道咋的报错,换了if没出问题,懒得弄了,后续有时间再搞懂)

最终完成Java代码:

package com.example.firstdemomodule;

import static android.graphics.Color.BLACK;
import static android.graphics.Color.GRAY;

import androidx.appcompat.app.AppCompatActivity;

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

import com.example.firstdemomodule.utils.DateUtil;

public class ButtonSelect extends AppCompatActivity implements View.OnClickListener {
    Button bsb;
    TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button_select);
        bsb =findViewById(R.id.bsb);
        Button bsbenable =findViewById(R.id.bsb1);
        Button bsbdisable =findViewById(R.id.bsb2);
        tv=findViewById(R.id.tv_result);

        bsb.setOnClickListener(this);
        bsbenable.setOnClickListener(this);
        bsbdisable.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
//            switch (v.getId()){
//                case R.id.bsb1:
//                    bsb.setEnabled(true);
//                    bsb.setTextColor(BLACK);
//                    break;
//                case R.id.bsb2:
//                    bsb.setEnabled(false);
//                    bsb.setTextColor(Color.GREEN);
//            }
        if(v.getId()==R.id.bsb1){
            bsb.setEnabled(true);
            bsb.setTextColor(BLACK);
        }else if (v.getId()==R.id.bsb2){
            bsb.setEnabled(false);
            bsb.setTextColor(GRAY);
        }else if(v.getId()==R.id.bsb){
            String s= String.format("%s 您点击了  %s",DateUtil.getNowTime(),((Button)v).getText());
            tv.setText(s);
        }
    }
}

最后测试一下

开启开关

 关闭开关

 开启开关侯=后点击测试开关

 成功~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值