android之常用控件大集合

android之常用控件大集合android中的控件可谓应有尽有,从简单的Button到复杂的WebView,无所不能,无所不有。在开发的早期阶段,这些控件应该完全能够满足开发者的要求.随着知识的不断深入,开发者完全可以根据自己的

大家好,又见面了,我是你们的朋友全栈君。

android中的控件可谓应有尽有,从简单的Button到复杂的WebView,无所不能,无所不有。

在开发的早期阶段,这些控件应该完全能够满足开发者的要求.随着知识的不断深入,开发者完全可以根据自己的需要,自定义控件.这篇博文主要和大家介绍一下android内置的这些控件的简单用法.

本案例通过一个注册界面尽可能多的为大家展示一些控件的使用。本案例涉及的控件有:TextView、EditText、RadioButton、Button、ToggleButton、CheckBox、Spinner等。

本案例整体的布局结构如下图:

<span role="heading" aria-level="2">android之常用控件大集合

注册成功后的信息显示如下图:

<span role="heading" aria-level="2">android之常用控件大集合

下面就布局的方法,控件的声明以及使用和大家做一个简单的介绍:

主界面中MainActivity.java中main.xml的代码如下:

ps:这里和大家讲一下android:layout_gravity=”center_vertical”android:gravity=”center”的区别:

前者是控件本身在布局中居中,而后者是控件中的文本在控件中居中.注意两者的区别.

以下就是详细的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
>
<TextView
android:id="@+id/tvTitleRegister"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:text
="用户注册界面"
android:textColor
="#EEE"
android:textStyle
="bold"
android:textSize
="28sp"
android:layout_gravity
="center_vertical"
android:gravity
="center"
/>
<TextView
android:id="@+id/tvUserName"
style
="@style/TextViewTitleWidgetStyle"
android:text
="用户名称:"
android:layout_below
="@+id/tvTitleRegister"
android:layout_alignParentLeft
="true"
android:layout_marginTop
="8dp"
/>
<EditText
android:id="@+id/etUserName"
style
="@style/EditTextInputWidgetStyle"
android:layout_toRightOf
="@+id/tvUserName"
android:layout_alignParentRight
="true"
android:layout_below
="@+id/tvTitleRegister"
android:layout_marginLeft
="2dp"
android:layout_marginRight
="2dp"
/>
<TextView
android:id="@+id/tvUserPassword"
style
="@style/TextViewTitleWidgetStyle"
android:text
="用户密码:"
android:layout_below
="@+id/tvUserName"
android:layout_alignParentLeft
="true"
android:layout_marginTop
="26dp"
/>
<EditText
android:id="@+id/etUserPassword"
style
="@style/EditTextInputWidgetStyle"
android:layout_toRightOf
="@+id/tvUserPassword"
android:layout_alignParentRight
="true"
android:layout_below
="@+id/etUserName"
android:layout_marginLeft
="2dp"
android:layout_marginRight
="2dp"
android:layout_marginTop
="5dp"
/>
<TextView
android:id="@+id/tvSex"
style
="@style/TextViewTitleWidgetStyle"
android:text
="性 别:"
android:layout_below
="@+id/tvUserPassword"
android:layout_alignParentLeft
="true"
android:layout_marginTop
="25dp"
/>
<RadioGroup
android:id="@+id/radioSexGroup"
android:layout_height
="wrap_content"
android:layout_width
="wrap_content"
android:layout_alignParentRight
="true"
android:layout_below
="@+id/etUserPassword"
android:layout_marginLeft
="2dp"
android:layout_marginRight
="2dp"
android:layout_toRightOf
="@+id/tvSex"
android:orientation
="horizontal"
>
<RadioButton
android:id="@+id/radioMale"
android:text
="男"
android:layout_height
="wrap_content"
android:layout_width
="wrap_content"
android:layout_marginLeft
="5dp"
/>
<RadioButton
android:id="@+id/radioFemale"
android:text
="女"
android:layout_height
="wrap_content"
android:layout_width
="wrap_content"
android:layout_marginLeft
="15dp"
/>
</RadioGroup>
<TextView
android:id="@+id/tvMarriage"
style
="@style/TextViewTitleWidgetStyle"
android:text
="婚 否:"
android:layout_below
="@+id/tvSex"
android:layout_alignParentLeft
="true"
android:layout_marginTop
="20dp"
/>
<ToggleButton
android:id="@+id/tbIsGetMarried"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_toRightOf
="@+id/tvMarriage"
android:layout_below
="@+id/radioSexGroup"
android:layout_marginLeft
="5dp"
/>
<TextView
android:id="@+id/tvhobbies"
style
="@style/TextViewTitleWidgetStyle"
android:text
="爱 好:"
android:layout_below
="@+id/tvMarriage"
android:layout_alignParentLeft
="true"
android:layout_marginTop
="20dp"
/>
<CheckBox
android:id="@+id/cb_basketball"
style
="@style/CheckBoxWidgetStyle"
android:layout_below
="@+id/tbIsGetMarried"
android:layout_toRightOf
="@+id/tvhobbies"
android:text
="篮球"
android:layout_marginLeft
="5dp"
/>
<CheckBox
android:id="@+id/cb_Reading"
style
="@style/CheckBoxWidgetStyle"
android:layout_below
="@+id/tbIsGetMarried"
android:layout_toRightOf
="@+id/cb_basketball"
android:text
="阅读"
android:layout_marginLeft
="5dp"
/>
<CheckBox
android:id="@+id/cb_pc"
style
="@style/CheckBoxWidgetStyle"
android:layout_below
="@+id/cb_basketball"
android:layout_toRightOf
="@+id/tvhobbies"
android:text
="电脑"
android:layout_marginLeft
="5dp"
/>
<CheckBox
android:id="@+id/cb_Sing"
style
="@style/CheckBoxWidgetStyle"
android:layout_below
="@+id/cb_Reading"
android:layout_toRightOf
="@+id/cb_pc"
android:text
="唱歌"
android:layout_marginLeft
="5dp"
/>
<TextView
android:id="@+id/tvTitle"
style
="@style/TextViewTitleWidgetStyle"
android:text
="职 务:"
android:layout_below
="@+id/tvhobbies"
android:layout_alignParentLeft
="true"
android:layout_marginTop
="60dp"
/>
<Spinner
android:id="@+id/position"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_toRightOf
="@+id/tvTitle"
android:layout_marginLeft
="5dp"
android:layout_below
="@+id/cb_Sing"
/>
<Button
android:id="@+id/bt_OK"
android:layout_width
="80dp"
android:layout_height
="wrap_content"
android:layout_alignParentBottom
="true"
android:text
="注册"
android:layout_marginLeft
="65dp"
/>
<Button
android:id="@+id/bt_Cancel"
android:layout_width
="80dp"
android:layout_height
="wrap_content"
android:layout_alignParentBottom
="true"
android:layout_toRightOf
="@+id/bt_OK"
android:text
="取消"
android:layout_marginLeft
="5dp"
/>
</RelativeLayout>

values/style.xml文件

这里建议一下大家,以后尽量将一些相同控件的通用属性集中起来放在style.xml文件中。这样做有两个好处:

第一:提高代码复用率     第二:便于后期的维护

以下是style.xml文件的详细代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--TextView-->
<style name="TextViewTitleWidgetStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#EEE</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">18sp</item>
</style>

<!--EditText-->
<style name="EditTextInputWidgetStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:lines">1</item>
</style>

<!--CheckBox-->
<style name="CheckBoxWidgetStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
</style>
</resources>

在MainActivity中各个控件的使用情况如下:

#1.往Spinner中添加值,需要一个String数组和一个Spinner的对象

Spinner中选取的值的获取:b.putString(“position”,position.getSelectedItem().toString());

public void setValuesForSpinner(String[] str,Spinner p) {
ArrayAdapter<Object> aa_spinner = new ArrayAdapter<Object> (this, android.R.layout.simple_spinner_item, str);
p.setAdapter(aa_spinner);
}

#2.radiobutton的取值,只需要判断isChecked(),两个RadioButton放在RadioGroup中,单选

if(radioMale.isChecked()) {
b.putString("gender", "性别: 男");
} else {
b.putString("gender", "性别: 女");
}

#3.CheckBox的取值

String temp = "爱好:";
if(cb_basketball.isChecked()) {
temp+="篮球";
}
if(cb_Reading.isChecked()) {
temp+=" ";
temp+="阅读";
}
if(cb_pc.isChecked()) {
temp+=" ";
temp+="电脑";
}
if(cb_Sing.isChecked()) {
temp+=" ";
temp+="唱歌";
}
b.putString("hobby", temp);

#4.ToggleButton的取值

if(tbIsGetMarried.isChecked()) {
b.putString("marriged", "婚否:已婚");
} else {
b.putString("marriged", "婚否:未婚");
}

最后只需要将Bundle的对象通过Intent发送到另一个Activity列表化显示即可.

 

2011.10.19.pm

jack.li

QQ:523072842
Email:523072842@qq.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155141.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用IAR Timeline工具测试delay函数执行时间

    利用IAR Timeline工具测试delay函数执行时间”要把大象放冰箱,总共分几步”,呵呵,写到本篇博客的时候突然想起小品宋丹丹说的那句经典台词了(俺们东北人儿对本山大叔的作品真是滚瓜烂熟了,搞的舍友还时不时跟我学上一学),哈哈,所以就索性给题目也加上了“几步”的说法,把复杂的事情简单化,也起到吸引人眼球的作用(当然本篇也是有实料的,进来的不会让你失望的,呵呵)。咳咳,至于到底是几步,是不是传说中的“三步”来,哈哈,那还得下面分解。。。  

    2022年5月21日
    43
  • stm32的sdio接口_STM32F411

    stm32的sdio接口_STM32F411一、SDIO接口简介SDIO,全称:SecureDigitalInputandOutput,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。SDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器等应用。STM32的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SDI/O卡和CE-ATA

    2022年10月3日
    4
  • 2d游戏shader(效果)

    Shader2D:一些2D效果的Shader实现包括:模糊,锐化,圆形裁剪,正六边形裁剪,圆角,UV动画,百叶窗,马赛克,浮雕,铅笔画,水彩画,灰化,老照片,饱和度,HDR,内发光,外发光,扭曲,旋涡,波浪,水滴散开等

    2022年4月11日
    36
  • 双击pycharm没反应_pycharm为啥运行不了

    双击pycharm没反应_pycharm为啥运行不了PYCHARM双击无反应初识python和深度学习,按网上教程安装好anaconda和pycharm后,发现anacondanavigator,pycharm以及anaconda里装好的jupyternotebook都启动不了。。。只能通过.bat打开最后还是网上大神nb,成功解决了我的问题,下面是我看到的三种解决方法1.重置winsock(未解决我的问题)以管理员身份打开cmd输入命令netshwinsockreset重启电脑2.修改pycharm64.exe.vmoption

    2022年8月27日
    5
  • 如何自己开发漏洞扫描工具视频_系统漏洞扫描工具有哪些

    如何自己开发漏洞扫描工具视频_系统漏洞扫描工具有哪些扫描器的设计思想是:灵活,易扩展,易修改,灵活的意思就是可单独执行专项漏洞的扫描,也可以批量执行集成的所有漏洞探测模块;易扩展的意思就是,新的漏洞检测模块可清晰简单的集成进扫描器;易修改,对各个漏洞扫描模块可根据特殊情况修改探测逻辑。扫描器的使用扫描器下载地址:https://gitee.com/samllpig/SafeTool-51testing工具的详细安装教程:http://quan.51testing.com/pcQuan/lecture/117先打开我们的扫描器看下界面:..

    2025年11月6日
    3
  • python3基础:操作mysql数据库

    python3基础:操作mysql数据库mysql登陆基本操作:登陆:mysql-uroot-h127.0.0.1-P3306-pmysql-uroot-p(本机不用写host)退出mysql:ctrl+z+回车,或者exit端口号默认是3306,但是可以通过安装目录下的配置文件修改。使用流程引用API模块获取与数据库的连接执行sql语句与存储过程关闭数据库连接安装pymysqlpython3与…

    2022年6月1日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号