android常用控件及布局文档格式.docx
- 文档编号:19631035
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:15
- 大小:434.43KB
android常用控件及布局文档格式.docx
《android常用控件及布局文档格式.docx》由会员分享,可在线阅读,更多相关《android常用控件及布局文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
c)设置这个Activity的布局文件
d)根据控件id获得控件对象
e)设置控件的值,这个值引用的是string.xml中的值,所以还需要在string.xml文件中设置(最好是使用string.xml中的值,以便实现国际化);
这个在布局文件中也能设置;
5、新建一个Activity,ResultActivity
6、在第一个Activity中编写Button的监听器
a)取得两个EditText控件的值
b)创建Intent对象
c)将这两个值存放到Intent对象当中
d)使用Intent对象启用ResultActivity
e)将监听器与Button绑定
7、在第二个Activity(ResultActivity)中获得Intent对象
a)获得Intent对象中保存的值并强制转换成int类型
b)计算两个值的积
c)设置控件值
8、在第一个Activity中,重写onCreateOptionsMenu()方法,这个方法是用于添加菜单中的菜单项,我们添加两个菜单项
9、再在第一个Activity中重写onOptionsItemSelected()方法,这个方法是当点击菜单中菜单项时调用。
判断,当点击退出的时候调用finish()方法
android常用控件之RadioGroupRadioButtonCheckBoxToast的使用
RadioGroup、RadioButton的用法
RadioGroup是RadioButton的组。
一个RadioGroup里面可以有多个RadioButton,但是只能选中其中的一个RadioButton。
一个应用程序中有两个单选按钮,用于选择男或女。
1、新建一个Android应用程序
2、编写main.xml文件,添加一个RadioGroup标签(还可以设置此标签内的布局方向是水平布局还是垂直布局)
3、在RadioGroup标签内添加两个RadioButton
4、编写Activity,先声明3个全局变量,用于接收这三个控件对象
5、在onCreate()方法内,根据控件id获得这三个对象并赋给相应的变量
6、编写监听器,监听器实现的是RadioGroup.OnCheckedChangeListener()提供的接口,需要重写里面的publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId)方法,这个方法的第一个参数是用来接收RadioGroup对象,第二个参数是用来接收被选中的RadioButton的ID。
在这个方法里面可以做一系列的判断和操作,比如判断RadioButton的id是否等于checkedId,如果等于就可以输出一句话或者使用Toast显示提示消息。
7、将监听器绑定到RadioGroup上
需要主要的是,
a)、这里绑定监听器的是RadioGroup对象而不是RadioButton对象
b)、这里的监听器实现的是RadioGroup.OnCheckedChangeListener()提供的接口。
CheckBox的用法
CheckBox复选框,相信大家都很了解了,这里就不多说了,直接上示例。
一个应用程序中有三个复选框,可以进行多选操作。
2、编写main.xml文件,添加三个CheckBox标签
3、编写Activity,先声明3个全局变量,用于接收这三个控件对象
4、为每一个CheckBox都编写一个监听器,该监听器实现的是CompoundButton.OnCheckedChangeListener()提供的接口,需要重写里面的publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked)方法,这个方法的第一个参数是用来接收CompoundButton对象,第二个参数是用来接收是否被选中,
在这个方法里面可以做一系列的判断和操作,比如判断某个CheckBox有没有被选中
5、将监听器绑定在对应的CheckBox上
Toast的用法
Toast主要用于提示信息,用起来很方便,一行代码就OK了。
1、创建Toast对象
makeText(Contextcontext,CharSequencetext,intduration);
通过调用这个方法,返回一个Toast对象。
第一个参数是上下文对象,通常是你的应用程序或者Activity对象,
第二个参数就是要显示的文本内容,可以格式化文本
第三个参数是持续多长时间来显示消息,有两个常量:
LENGTH_SHORT或者LENGTH_LONG
2、调用show()方法显示。
Toasttoast=Toast.makeText(RadioTest.this,"
female"
Toast.LENGTH_SHORT);
toast.show();
在前面的RadioButton示例中,当选中"
女"
的单选框时调用Toast。
有一点需要注意的是:
RadioGroup的监听器实现是RadioGroup.OnCheckedChangeListener()提供的接口,而CheckBox的监听器实现的是CompoundButton.OnCheckedChangeListener()提供的接口
为什么RadioGroup和CheckBox实现的不是同一个接口呢?
原因大概是因为:
在RadioGroup.OnCheckedChangeListener()里面的onCheckedChanged(RadioGroupgroup,intcheckedId)方法它里面需要的是一个RadioGroup参数,而RadioGroup并不是CompoundButton的子类,所以它只能再重新写一个这样的接口。
而CheckBox它本身就是CompoundButton的子类,所以它可以直接使用这个接口。
android常用控件之ProgressBar、ListView
ProgressBar(进度条)的使用
一个应用程序有2个ProgressBar,让进度条显示进度。
1、新建一个android项目
2、在main.xml布局文件中先添加1个ProgressBar控件(firstProgressBar),设置这个进度条是以水平方式展示的,然后再设置这个控件为不显示(这里暂时不显示,我们在后面的程序中写代码将这个控件设置为显示)
3、在main.xml布局文件中再添加1个ProgressBar控件(secondProgressBar),设置该标签的显示样式为默认的(是一个转动的圆圈),然后再同样设置这个控件暂时为不显示
4、在main.xml布局文件中再添加一个Button控件
5、在Activity中编写代码,先获得这2个ProgressBar和Button对象
6、然后编写一个监听器,设置进度条的进度,当每点击一次Button,进度则增加10
7、将监听器绑定到Button对象上
下图为main.xml布局文件的片段:
最后项目实现的效果为:
ListView的使用
ListView的使用相对于之前使用到的一些控件而言要复杂一点,在这里呢,同样是通过一个示例来讲解。
一个应用程序有一个ListView,显示三行信息。
2、在布局文件中再添加一个LinearLayout(应用程序新建的时候默认的布局文件里就已经有了一个LinearLayout,现在再添加一个),设置这个LinearLayout的一些属性。
3、在LinearLayout中添加一个ListView,并设置一些属性。
4、新建一个布局文件,这个布局文件呢,是用来布局和显示ListView里面的内容的(我是这样理解的,不知道大家能不能理解哈)。
先在这个布局文件中添加一个LinearLayout,然后在LinearLayout中添加两个TextView,表示显示两列数据(如果需要显示多列数据的话当然就是添加多个TextView了)。
Xml代码
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
LinearLayoutxmlns:
android="
android:
orientation="
horizontal"
layout_width="
fill_parent"
layout_height="
paddingTop="
1dip"
paddingBottom="
paddingLeft="
10dip"
paddingRight="
TextView
id="
@+id/user_name"
180dip"
30dip"
textSize="
10pt"
singleLine="
true"
/>
@+id/user_ip"
wrap_content"
gravity="
right"
/LinearLayout>
5、编写Activity
a)首先要注意的是,这个Activity他继承的不是Activity,而是ListActivity。
b)创建一个ArrayList,里面存放的是HashMap,而HashMap的键值对都是String类型。
c)分别往3个HashMap中存储值
d)将3个HashMap添加到ArrayList中
e)创建适配器
f)绑定到适配器
g)编写行的点击事件
Java代码
packageandroid.listview;
importjava.util.ArrayList;
importjava.util.HashMap;
importandroid.app.ListActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ListView;
importandroid.widget.SimpleAdapter;
//注意:
这里继承的是ListActivity,而不是Activity
publicclassListViewTestextendsListActivity{
/**Calledwhentheactivityisfirstcreated.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//创建一个ArrayList,ArrayList里面存放的是HashMap,而HashMap的键值对都是String类型
ArrayList<
HashMap<
String,String>
list=newArrayList<
();
map1=newHashMap<
map2=newHashMap<
map3=newHashMap<
//分别往3个HashMap中存储值
map1.put("
user_name"
"
zhangsan"
);
user_ip"
192.168.0.1"
map2.put("
lisi"
192.168.0.2"
map3.put("
wangwu"
192.168.0.3"
//将3个HashMap添加到ArrayList中
list.add(map1);
list.add(map2);
list.add(map3);
//创建适配器
//第一个参数Content:
上下文
//第二个参数List<
extendsMap<
String,?
:
ArrayList对象,ArrayList里面存放的是HashMap,而HashMap的键值对都是String类型
//第三个参数intresource:
内容显示的布局文件
//第四个参数String[]from:
被添加到ArrayList中的HashMap中key的名称,要显示的列
//第五个参数int[]to:
内容显示的布局文件中,显示内容的控件id
SimpleAdapterlistAdapter=newSimpleAdapter(this,list,
R.layout.user,newString[]{"
},
newint[]{R.id.user_name,R.id.user_ip});
//绑定到适配器。
setListAdapter(listAdapter);
}
/**
*列表当中一行的点击事件
*ListView:
ListView对象本身
*View:
被选中的那一行的View对象
*position:
被选中的那一行的位置
*id:
被选中的那一行的id
*/
protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){
//TODOAuto-generatedmethodstub
super.onListItemClick(l,v,position,id);
//打印出被选中的那一行的位置和id,计数都是从0开始
System.out.println("
-------------"
+position);
+id);
三、android布局
android有多种布局格式,这里只是详细介绍常用的五种格式。
RelativeLayout、LinearLayout、FrameLayout、AbsoluteLayout、TableLayout.。
其中LinearLayout和RelativeLayout是最常用的格式,他们可以通过xml配置文件进行布局。
可以查看相关api:
我这里这是简单介绍这五种格式.
1、FrameLayout
最简单的布局格式,他可以防止任何空件,但是都只能罗列到左上角,不能进行复杂的布局。
可以明显的看到两个视图重叠到了一起。
这种布局很少用到。
2、LinearLayout
LinearLayout以你为它设置的垂直或水平的属性值,来排列所有的子元素。
所有的子元素都被堆放在其它元素之后,因此一个垂直列表的每一行只会有一个元素,而不管他们有多宽,而一个水平列表将会只有一个行高.
可以进行复杂的布局的编排。
他是线性的布局。
它可以排出相当复杂的界面,同时可以嵌套使用,所以大多数选择他来进行布局。
3、AbsoluteLayout
AbsoluteLayout可以让子元素指定准确的x/y坐标值,并显示在屏幕上。
AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐)。
他是绝对坐标,所以在实际中不提倡使用。
4、RelativeLayout
RelativeLayout允许子元素指定他们相对于其它元素或父元素的位置(通过ID
指定)。
因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。
元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。
这个是相对于AbsoluteLayout的,采用的相对坐标,所以在实际中比较常用。
5、TableLayout
TableLayout将子元素的位置分配到行或列中。
一个TableLayout由许多的TableRow组成,每个TableRow都会定义一个row。
TableLayout容器不会显示row、cloumns或cell的边框线。
每个row拥有0个或多个的cell;
和html中的table查不多少。
在实际中也经常使用。
Android布局详解
之前对于XML的布局方法一直看着不爽,感觉很乱的样子,但时间长了我渐渐发现,这种程序代码与界面布局完全分开的方法非常顺手,该布局的地方都到main.xml里去写,甚至界面中显示的字符串都可以集中到string.xml文件中,而主程序的"
.java"
文件中则完全用于编写代码,思路非常清晰。
首先按照程序的目录结构大致分析:
res/layout/这个目录存放的就是布局用的xml文件,一般默认为main.xml
res/values/这个目录存放的是一堆常量的xml文件
res/drawable/存放的是一些图片什么的,当然图标也在这里
下面主要对layout下的xml文件做个介绍,顺便也把布局的方法总结一下:
文件的开头:
这是在说明xml版本及字符编码
紧接着到了关键的部分:
其中开头的"
LinearLayout"
是布局的方式,可以有很多种,最常用的应该就是Linear了,其他的布局方法等下在后面总结。
接着android:
layout_width(height)="
是在设置这部分布局的宽高,也可以是绝对值,当然设置为绝对值时要标上单位。
在<
LinearLayout...>
和<
就之间可以添加控件了,比如要添加一个名字为btn的Button控件,并且Button上显示的文字是"
Test!
"
,可以这样写:
Buttonid="
@+id/btn"
text="
开头id后面的就是控件名称,在用于添加事件Listener时会用到,而下几行的android:
xxx就是设置控件的属性了,这些属性在Android的文档中都有,不需要特别去记,一般现查就可以了。
有一点要说明的是,布局方法可以嵌套,有点像java中的Container,可以非常方便的把界面"
堆"
出来。
布局方式的简单说明:
查了Android文档发现布局确实很多,只列出两个我自己认为较常用的:
LinearLayout线性的布局方式,要么上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 常用 控件 布局