当前位置: 代码迷 >> 综合 >> Android学习笔记(二)----Button,EditText,RadioButton,ChecxBox
  详细解决方案

Android学习笔记(二)----Button,EditText,RadioButton,ChecxBox

热度:21   发布时间:2023-11-22 10:19:11.0

第二天了,继续

(2-3)Button

主要学习以下操作
在这里插入图片描述

1.文字大小

类似text的设置

2.自定义背景形状

(1)圆角边框
效果如下:在这里插入图片描述
需要设置背景为drawable里的xml文件

android:background="@drawable/bg_btn2"

此处bg_btn2为shape文件
shape文件代码如下

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle">//设置填充色<solidandroid:color="#ff9900"/>//设置圆角大小<cornersandroid:radius="10dp"/>
</shape>

(2)边框线
效果如下:在这里插入图片描述
shape文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle">//边框线<strokeandroid:width="1dp"android:color="#ff9900"/>//圆角大小<cornersandroid:radius="10dp"/></shape>

自定义按压效果

实现按压button颜色加深效果,使用drawable里的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="#aa6600"/><corners android:radius="10dp"/></shape></item>//未按压时<item android:state_pressed="false"><shape><solid android:color="#ff9900"/><corners android:radius="10dp"/></shape></item>
</selector>

4.点击事件

有两种实现方法
(1)通过在xml里对< Button>设置

android:onClick="showToast"

然后在Activity文件里实现该方法

public void showToast(View view){Toast.makeText(this,"btn4已点击",Toast.LENGTH_SHORT).show();}

此方法不太常用,不推荐
(2)设置点击监听器,推荐使用该方法

private Button mBtn3;
mBtn3 = findViewById(R.id.btn_3);
mBtn3.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {Toast.makeText(ButtonActivity.this, "btn3已点击", Toast.LENGTH_LONG).show();}});

点击事件对任意控件都有效,比如TextView控件,代码和Button控件一样

(2-4)EditText

在这里插入图片描述
效果如下
在这里插入图片描述

1.常用属性

android:hint="用户名"		//用于显示浅色背景字
android:inputType="number"	//设置输入为数字,用于输入格式的控制

2.监听事件

mEtUserName = findViewById(R.id.et_1);
mEtUserName.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {Log.d("edittext", s.toString());//输出输入信息}@Overridepublic void afterTextChanged(Editable s) {}});

用于监听输入信息的改变
效果如下:
在这里插入图片描述

3.制作登陆界面

完成界面:
在这里插入图片描述

(2-5)RadioButton

在这里插入图片描述

1.常用属性

设置控件为RadioButton,其他设置同文本控件一样
要实现单选功能则需要设置RadioGroup
代码如下

<RadioGroup<RadioButton.../><RadioButton.../>
</RadioGroup>

android:checked="true"用来设置默认选中(使用此设置需要给每个单项按钮设置id,不设置则会失效)

2.自定义样式

<RadioButtonandroid:id="@+id/rb_4"android:layout_width="60dp"android:layout_height="30dp"android:gravity="center"android:text="女"android:button="@null"//原有样式为空android:background="@drawable/selector_orange_radiobutton"//设置背景色android:textSize="18sp"android:textColor="#000000"/>

效果如下:
在这里插入图片描述
再设置选中后变色,对xml文件设置

<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true"><shape><solid android:color="#aa6600"/>//设置填充色<corners android:radius="10dp"/></shape></item><item android:state_checked="false"><shape><stroke android:width="1dp"android:color="#aa6600"/>//设置边框线<corners android:radius="10dp"/></shape></item>
</selector>

总效果如下:
在这里插入图片描述
选中后将变为棕色

3.监听事件

mRg1 = findViewById(R.id.rg_1);
mRg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton radioButton = group.findViewById(checkedId);Toast.makeText(RadioButtonActivity.this, radioButton.getText(), Toast.LENGTH_SHORT).show();//提示选中消息}});

(2-6)CheckBox

实现以下操作:
在这里插入图片描述

1.常用属性

用CheckBox控件实现复选框功能,其他设置同文本控件,效果如下:
在这里插入图片描述

2.自定义样式

通过drawable文件实现

<selector xmlns:android="http://schemas.android.com/apk/res/android">//icon_checkbox_false是未选中时的图标<item android:state_checked="false"android:drawable="@drawable/icon_checkbox_false"/><item android:state_checked="true"android:drawable="@drawable/icon_checkbox_true"/>
</selector>

然后再在layout使用

//bg_checkbox为上面那个drawable文件
android:button="@drawable/bg_checkbox"

效果如下:
在这里插入图片描述

3.监听事件

通过Activity类实现

mCb5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {Toast.makeText(CheckBoxActivity.this,isChecked ? "5选中" : "5未选中", Toast.LENGTH_SHORT).show();//弹出提示消息}});

选中后提示
在这里插入图片描述

  相关解决方案