当前位置: 首页 > 编程日记 > 正文

Android之控件使用

Android系统为我们提供了大量的控件,例如:开关控件、单选按钮、多选按钮、单选菜单等等,那么这些控件如何使用呢?本篇我将带领大家一道学习一下如何使用这些控件。所谓无图无真相,先让大家看一下效果图:

   

下面我们就一起学习一下这些控件的使用吧,首先是我们这边效果的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}" ><LinearLayout android:id="@+id/lative"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent" android:background="#FF000000"><TextViewandroid:id="@+id/Textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /><ProgressBar android:id="@+id/Barfirst"style="?android:attr/progressBarStyleHorizontal"android:max="100"android:visibility="gone"android:layout_width="200dip"android:layout_height="wrap_content"/><ProgressBarandroid:id="@+id/Bartwo"android:visibility="gone"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Button android:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/open"/><CheckBox android:id="@+id/reading"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="@string/reading"/><CheckBox android:id="@+id/music"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/music"/><CheckBox android:id="@+id/youyong"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/youyong"/><RadioGroup android:id="@+id/radio"android:layout_width="wrap_content"android:layout_height="wrap_content"   ><RadioButton android:id="@+id/nan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="@string/nan"/><RadioButton android:id="@+id/nv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/nv"/></RadioGroup><ToggleButton android:id="@+id/togbutton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textOn="@string/biejingquit"android:textOff="@string/biejingopen"/><Button android:id="@+id/first"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/xiayiye"/>    </LinearLayout>
</RelativeLayout>

下面是我们的主Activity,为了方便大家拷贝学习,我将各个控件的事件都添加了注释,大家一看应该就能明白,这里就不在赘述。

public class Activityone extends Activity {private Button mybutton;//打开进度条按钮private Button mybuttonfirst;//普通跳转按钮private ProgressBar mybarfirst;//进度条1private ProgressBar mybartwo;//进度条2private TextView mytext;//文本控件private CheckBox reading;//多选按钮private CheckBox music;//多选按钮private CheckBox youyong;//多选按钮private RadioButton nan;//单选按钮private RadioButton nv;//单选按钮private ToggleButton togbutton;//开关控件private LinearLayout lative;//主布局控件private int cont = 0;//记录进度条大小
    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.All();//设置activity全屏显示
        setContentView(R.layout.activity_one);mybutton=(Button)findViewById(R.id.button);mybuttonfirst=(Button)findViewById(R.id.first);mytext=(TextView)findViewById(R.id.Textview);mybarfirst=(ProgressBar)findViewById(R.id.Barfirst);mybartwo=(ProgressBar)findViewById(R.id.Bartwo);reading=(CheckBox)findViewById(R.id.reading);music=(CheckBox)findViewById(R.id.music);youyong=(CheckBox)findViewById(R.id.youyong);nan=(RadioButton)findViewById(R.id.nan);nv=(RadioButton)findViewById(R.id.nv);togbutton=(ToggleButton)findViewById(R.id.togbutton);lative=(LinearLayout)findViewById(R.id.lative);//开关点击事件管理togbutton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (togbutton.isChecked()) {lative.setBackgroundColor(0xFFF3F3F3);}else{lative.setBackgroundColor(0xFF000000);}}});//单选按钮nan.setOnClickListener(new myradiobuttonlistener());nv.setOnClickListener(new myradiobuttonlistener());//进度条开关管理mybutton.setOnClickListener(new mybuttonlistener());//多选按钮点击事件reading.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (((CheckBox) v).isChecked()) {Toast.makeText(getApplicationContext(), R.string.reading, Toast.LENGTH_SHORT).show();}}});//多选按钮点击事件music.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (((CheckBox) v).isChecked()) {Toast.makeText(getApplicationContext(), R.string.music, Toast.LENGTH_SHORT).show();}}});//多选按钮点击事件youyong.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (((CheckBox) v).isChecked()) {Toast.makeText(getApplicationContext(), R.string.youyong, Toast.LENGTH_SHORT).show();}}});//普通跳转按钮点击事件管理mybuttonfirst.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Activityone.this, Activitytwo.class);Activityone.this.startActivity(intent);}});}//进度条控制class mybuttonlistener implements OnClickListener{@Overridepublic void onClick(View v) {if(cont==0){mybarfirst.setVisibility(View.VISIBLE);mybartwo.setVisibility(0);mytext.setText(R.string.addone);mybutton.setText(R.string.add);}else if(cont<=100){mybarfirst.setProgress(cont);mybarfirst.setSecondaryProgress(cont+10);}else{mybarfirst.setProgress(0);mybarfirst.setSecondaryProgress(0);mybarfirst.setVisibility(View.GONE);mybartwo.setVisibility(View.GONE);mytext.setText(R.string.hello_world);mybutton.setText(R.string.open);cont=-10;}cont+=10;}        }//单选点击事件class myradiobuttonlistener implements OnClickListener{@Overridepublic void onClick(View v) {RadioButton rb = (RadioButton) v;//获得被点击的控件Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show();//rb.getText():得到被点击的选项
        }}//设置应用全屏显示    private void All(){requestWindowFeature(Window.FEATURE_NO_TITLE);   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);}//系统菜单(menu菜单)public boolean onCreateOptionsMenu(Menu menu) {menu.add(0, 1, 1, R.string.quit);menu.add(0, 2, 2, R.string.about);return super.onCreateOptionsMenu(menu);        }@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if(item.getItemId()==1){//创建一个提示对话框AlertDialog.Builder builder = new AlertDialog.Builder(Activityone.this);//获得一个警戒对话框
            builder.setTitle(R.string.menu_quit);builder.setMessage(R.string.menu_mager);builder.setPositiveButton(R.string.menu_yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish();} });builder.setNegativeButton(R.string.menu_no, null);builder.show();}return super.onOptionsItemSelected(item);}}

下面为大家介绍一下弹出弹出对话框的知识,还是老一套,先看代码,首先是布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}" ><LinearLayout android:orientation="vertical"android:id="@+id/lineartwo"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/texttwo"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:text="@string/duihua"android:textSize="20dip"/><Button android:id="@+id/buttontwo1"android:text="@string/danxuan"android:layout_width="fill_parent" android:layout_height="wrap_content"/><Button android:id="@+id/buttontwo2"android:text="@string/duoxuan"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Button android:id="@+id/buttontwo3"android:text="@string/liebiao"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Button android:id="@+id/buttontwo4"android:text="自定义弹出窗口"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Button android:id="@+id/buttontwo5"android:text="@string/xiayiye"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>
</RelativeLayout>

下面是主Activity代码:

public class Activitytwo extends Activity{private Button mybutton1;//单选对话框private Button mybutton2;//多选对话框private Button mybutton3;//列表对话框private Button mybutton4;//自定义弹出对话框private Button mybutton5;//普通跳转按钮private String arr[]={"男","女","少年","青年","中年","老年","已婚","未婚","本科","硕士","博士"};private String brr[]={"游泳","听音乐","看书","打电脑游戏","书法","看电视","玩手机","唱歌","旅游","学习"};private boolean[] brrs={true,true,false,false,true,false,false,false,false,false};//与brr[]一一对应,true:默认被选择;false:默认不被选择private String crr[]={"北京","上海","天津","河南","湖南","湘潭","长沙","武汉","福建","澳门","香港","深圳","广州"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_two2);mybutton1=(Button)findViewById(R.id.buttontwo1);mybutton2=(Button)findViewById(R.id.buttontwo2);mybutton3=(Button)findViewById(R.id.buttontwo3);mybutton5=(Button)findViewById(R.id.buttontwo5);mybutton4=(Button)findViewById(R.id.buttontwo4);//单选提示对话框mybutton1.setOnClickListener(new mybutton1listener());//多选提示对话框mybutton2.setOnClickListener(new mybutton2listener());//下拉提示对话框mybutton3.setOnClickListener(new mybutton3listener());//自定义弹出对话框mybutton4.setOnClickListener(new mybutton4listener());//普通跳转按钮mybutton5.setOnClickListener(new mybutton5listener());}//单选事件监听class mybutton1listener implements OnClickListener{@Overridepublic void onClick(View v) {AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);builder.setTitle(R.string.duoxuan);//设置标题builder.setIcon(R.drawable.ic_launcher);//设置图标builder.setSingleChoiceItems(arr , 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(Activitytwo.this, " "+"你选择的是:"+arr[which], Toast.LENGTH_LONG).show();//dialog.dismiss();
                }});//设置选择的内容builder.setPositiveButton(R.string.menu_yes, null);builder.show();}}//多选事件监听class mybutton2listener implements OnClickListener{@Overridepublic void onClick(View v) {AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);builder.setTitle(R.string.duoxuan);builder.setIcon(R.drawable.ic_launcher);builder.setMultiChoiceItems(brr, brrs, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {for(int i=0;i<brr.length;i++){if(i==which&&isChecked){Toast.makeText(Activitytwo.this, " "+brr[i], Toast.LENGTH_SHORT).show();}}}});builder.setPositiveButton(R.string.menu_yes, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.show();}}//下拉列表事件监听class mybutton3listener implements OnClickListener{@Overridepublic void onClick(View v) {AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);builder.setTitle(R.string.liebiao);builder.setIcon(R.drawable.ic_launcher);builder.setItems(crr, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(Activitytwo.this, " "+crr[which], Toast.LENGTH_SHORT).show();}});builder.setPositiveButton(R.string.menu_yes, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.show();}}class mybutton4listener implements OnClickListener{@Overridepublic void onClick(View v) {AlertDialog.Builder builder = new AlertDialog.Builder(Activitytwo.this);builder.setTitle("登录窗口");builder.setIcon(R.drawable.ic_launcher);View login = Activitytwo.this.getLayoutInflater().inflate(R.layout.info, null);//设置弹出窗口的视图
            builder.setView(login);final AlertDialog alerrt = builder.create();alerrt.show();Button button1 = (Button) login.findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {alerrt.dismiss();}});}}//普通跳转class mybutton5listener implements OnClickListener{@Overridepublic void onClick(View v) {Intent intent = new Intent(Activitytwo.this,Activitythree.class);Activitytwo.this.startActivity(intent);}}
}

好了,关于Android控件使用的知识就为大家分享完毕,内容很简单,如有疑问可以留言讨论。新手学习,高手交流。

转载于:https://www.cnblogs.com/AndroidJotting/p/4944922.html

相关文章:

《对软件工程课程的期望》

要学习到的能力的预期&#xff1a;要学会个人&#xff0c;结对&#xff0c;团队的代码编辑流程&#xff0c;学会和别人进行交流。 对项目课程的期望&#xff1a;希望不是枯燥的代码详解。 对项目的愿景规划&#xff1a;希望团队里的每个人都能学到有用的知识。转载于:https://w…

HTML发送语音,上传音频PHP接收

实现需求&#xff1a;网页录制音频上传给后端接收&#xff0c;接收后PHP把文件的名字存到数据库的表里面&#xff0c;这里我的后端用的是PHP&#xff0c;并且把代码贴出来了。 前端实现代码&#xff1a; <!DOCTYPE HTML> <html><head><meta http-equiv&q…

html:漂亮的原生表格_HTML表格:关于它们的所有知识

html:漂亮的原生表格by Alexander Gilmanov亚历山大吉尔马诺夫(Alexander Gilmanov) HTML表格&#xff1a;关于它们的所有知识 (HTML Tables: All there is to know about them) Judging by the fact that we created wpDataTables, it’s no secret that we like tables. So …

[BZOJ] 1606: [Usaco2008 Dec]Hay For Sale 购买干草

1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1335 Solved: 989[Submit][Status][Discuss]Description 约翰遭受了重大的损失&#xff1a;蟑螂吃掉了他所有的干草&#xff0c;留下一群饥饿的牛&#xff0e;他乘着容量为C(1≤C≤…

PHP TP5框架 安装运行 Warning: require(E:\phpstudy_pro\WWW\TP5\tp5\public/../thinkphp/base.php): failed to

创建一个新的项目&#xff1a;进入项目的根目录执行 git 命令&#xff1a; 先执行 git clone -b 5.1 https://git.coding.net/liu21st/thinkphp5.git tp5 进入 tp5目录 cd tp5再执行 git clone -b 5.1 https://git.coding.net/liu21st/framework.git thinkphp 执行更新框…

python之模块base64

# -*- coding: cp936 -*- #python 27 #xiaodeng>>> help(base64) #用来作base64编码解码 FUNCTIONS #函数(功能) •b16decode(s, casefoldFalse)Decode a Base16 encoded string. #解码 decode_stringbase64…

github pages_使用GitHub Pages和Lighthouse增强您的开发人员产品组合

github pagesFor someone who is trying to break into software development, it doesn’t matter where you look — LinkedIn, career advice boards, youtube tutorials — the advice is always the same: you need a portfolio. freeCodeCamp knows this advise, and the…

Angular 4+ HttpClient

个人博客迁移至 http://www.sulishibaobei.com 处&#xff1b; 这篇&#xff0c;算是上一篇Angular 4 Http的后续&#xff1b; Angular 4.3.0-rc.0 版本已经发布?。在这个版本中&#xff0c;我们等到了一个令人兴奋的新功能 - HTTPClient API 的改进版本&#xff1b; HttpCli…

PHP TP5入门 二:写接口,添加控制器并访问

默认访问地址&#xff1a;http://localhost/TP5/tp5/public/index.php/index/hello_world 实现代码&#xff1a; <?php namespace app\index\controller;class HelloWorld {public function index(){return 22hello&#xff0c;world&#xff01;;} } 添加一个控制器如…

Possion 分布

泊松分布的概率函数为&#xff1a; \[P(Xk)\frac{\lambda^k}{k!}e^{-\lambda},k0,1,2,\cdots\] 如果 $X_i \sim P(\lambda_i)$,并且 互相独立&#xff0c;那么: \[Y\left( \sum\limits_{i1}^n{X_i} \right) \sim P \left( \sum\limits_{i1}^n{\lambda_i} \right)\] 从上面公式…

如何使您的Kotlin Android动画可访问

When researching examples for a first ever Android contribution, few examples existed for animations written in Kotlin. There were also few code examples of accessibility considerations within native animations.在研究有史以来第一个Android贡献的示例时&#…

指针空间的申请与释放

一、malloc()和free()的基本概念以及基本用法&#xff1a; 1、函数原型及说明&#xff1a; void *malloc(long NumBytes)&#xff1a;该函数分配了NumBytes个字节&#xff0c;并返回了指向这块内存的指针。如果分配失败&#xff0c;则返回一个空指针&#xff08;NULL&#xff0…

UIGraphicsBeginImageContext - 位图上下文

UIGraphicsBeginImageContext 首先&#xff0c;先来认识一个UIGraphicsBeginImageContext&#xff0c;它会创建一个基于位图的上下文(context)&#xff08;默认创建一个透明的位图上下文&#xff09;,并将其设置为当前上下文。 位图图形上下文UIKit是不会负责创建的&#xff0c…

小程序双击事件

代码&#xff1a; <button data-time"{{lastTapTime}}" data-title"标题" bindtap"doubleClick">双击</button> js data: {lastTapTime:0,}, doubleClick: function (e) {var curTime e.timeStampvar lastTime e.currentTarget…

快速了解Kubernetes微服务中的通信

by Adam Henson亚当汉森(Adam Henson) 快速了解Kubernetes微服务中的通信 (A quick look at communication in Kubernetes microservices) “服务”概念和一个Node.js示例 (The “service” concept and a Node.js example) Based on complexity, a layer of microservices ca…

连接 linux服务器

操作步骤&#xff1a; xshell 下载 https://xshell.en.softonic.com/ 点击下载后&#xff0c;会有邮箱验证&#xff0c;点击验证通过就会自动下载&#xff0c;然后安装就行。 打开工具&#xff0c;点击新建会话 然后 浏览文件后直接点击确认&#xff0c;出来这样就登录成功了…

【bzoj3924】[Zjoi2015]幻想乡战略游戏 动态点分治

题目描述 傲娇少女幽香正在玩一个非常有趣的战略类游戏&#xff0c;本来这个游戏的地图其实还不算太大&#xff0c;幽香还能管得过来&#xff0c;但是不知道为什么现在的网游厂商把游戏的地图越做越大&#xff0c;以至于幽香一眼根本看不过来&#xff0c;更别说和别人打仗了。 …

面试题05-UI控件

怎么解决缓存池满的问题(cell)ios中不存在缓存池满的情况&#xff0c;因为通常我们ios中开发&#xff0c;对象都是在需要的时候才会创建&#xff0c;有种常用的说话叫做懒加载&#xff0c;还有在UITableView中一般只会创建刚开始出现在屏幕中的cell&#xff0c;之后都是从缓存池…

全球链界科技发展大会_如何成为科技界的团队合作者

全球链界科技发展大会by Ofer Vugman由Ofer Vugman 如何成为科技界的团队合作者 (How to be a team player in the tech world) 这些技巧将增进您的关系并提高团队的工作效率 (These tips will boost your relationships and your team’s efficiency at work) When I landed …

linux驱动之i2c子系统mpu6050设备驱动

以下是mpu6050简单的驱动实现&#xff0c;mpu6050是I2C接口的6轴传感器&#xff0c;可以作为字符设备注册到内核&#xff0c;本代码运行环境是3.4.2内核&#xff0c;4.3.2版本的编译链&#xff0c;12.04版本的Ubuntu&#xff0c;硬件环境是jz2440开发板&#xff1b; 按照之前分…

小程序使用富文本完整代码及示例图

先看示例图&#xff1a; 富文本html代码&#xff1a; 效果图&#xff1a; 实现步骤&#xff1a; 1.下载 wxParse代码放到你的小程序项目目录里面 https://github.com/icindy/wxParse 基本使用方法 Copy文件夹wxParse - wxParse/-wxParse.js(必须存在)-html2json.js(必须存在…

C# 百分比的获取

这里介绍 C# 百分比转换有2种方式 例&#xff1a; double a50; double b100; a/b.ToString("0.00%"); 或 a/b.ToString("P3"); p后的数字表示能显示小数点后几位的精度数 实际如&#xff1a; 方法一&#xff1a;a/b.ToString("0.00%"); 方法二&a…

css 网格布局_我从CSS网格布局中学到的东西

css 网格布局by Jennifer Wjertzoch珍妮弗维佐奇 我从CSS网格布局中学到的东西 (Things I’ve learned about CSS grid layout) With CSS Grid you can create complex web designs. It is very intuitive and very well supported by the major browsers. In this article I …

GoF23种设计模式之行为型模式之解释器模式

一、概述 给定一种语言和其文法的一种表示&#xff0c;再定义一个解释器&#xff0c;该解释器使用表示来解释语言中的句子。 二、适用性 当需要解释一种语言&#xff0c;并且可以将该语言中的句子表示为一个抽象语法树的时候。 1.该文法简单对于复杂的文法&…

U盘安装Ubuntu14.4时遇到分区问题记录

1、在安装Ubuntu14.4时&#xff0c;遇到如果先分出 / 跟挂载的主分区时&#xff0c;后面只能再分一个swap&#xff0c;或者挂载一个/home&#xff0c;或者一个/ boot 时不能继续分区&#xff0c;当然想安装也是不能不能成功的。 解决办法&#xff1a;在这里先不要创建 / 的主挂…

请求异步js,请求完成后执行代码

要确定请求完成 js 文件&#xff0c;才执行相关的代码。 场景&#xff0c;引用了百度地图的 js-sdk&#xff0c; 需要实例化 SDK 对象&#xff0c;但是这个引用加载JS-SDK文件其实是异步的&#xff0c;在没请求完成之前就实例化对象就会报错&#xff0c;提示找不到该对象。 解…

测试驱动开发 测试前移_测试驱动开发简介

测试驱动开发 测试前移I’ve been programming for five years and, honestly, I have avoided test-driven development. I haven’t avoided it because I didn’t think it was important. In fact, it seemed very important–but rather because I was too comfortable no…

BZOJ 2957楼房重建

传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<queue> #include<vector> #define lc x<<1 #define rc x<<1|…

AngularJs $cacheFactory 缓存服务

可能之前的api写的有些枯燥吧&#xff0c;因为不烧脑&#xff0c;不需要很多逻辑思维来做处理&#xff0c;那么之后的文章会有趣很多&#xff0c;慢慢的开始烧脑了&#xff0c;准备好大量脑细胞的死亡吧~ 先来篇简单的缓存服务。 本文将api文档里的$cacheFactory和 $cacheFac…

H5使用百度地图SDK获取用户当前位置并且标记显示在地图

代码实现功能&#xff1a; H5使用百度地图SDK获取用户当前位置并且标记显示在地图&#xff0c;点击该标记弹出一层自定义的HTML。 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" conten…