android总结(前十一章)_android开发工作总结
android总结(前十一章)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android开发工作总结”。
第二章基本控件
1、基本控件(常用控件)有六种
textview(文字控件)Button(按钮)Edittext(文本框)Imageview(图片控件)Checkbox(复选框)Radiobutton(单选框)
2、使用这些控件需要两步:
第一步:在xml文件(布局文件)里面写控件Id
{@+id/布局文件名字_控件类型名_控件功能} width、Height、background wrap_content(自适应)【够用就行】
match_parent(站满父控件或者是站满父容器)fill_parent(功能和match_parent一样)
第二步: 在代码中(在activity类中)关联控件(findviewbyid)
3、各控件详解
TextView:
常用属性:text、textSize、textColor(#FFFFFF)、textStyle(粗bold、斜italic、粗斜bold|italic)RadioButton: xml中一定要用radiogroup来包裹radiobutton 2 在代码中一定要实例化radiogroup(可以不实例化radiobutton)
Button:
btton.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ } });EditText: 常用属性:autoText(自动拼写辅助)、digits(只接受某些数字)、hint(输入为空时给提示)
CheckBox:
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){ public void OnCheckedChanged(CompoundButtonbuttonView, booleanisChecked){
} } });switch(buttonView.getId()){ case R.id.chk: break;
RadioButton: RadioButton.setOnCheckedChangeListener(new OnCheckedChangeListener(){ public intcheckedId){
} }
RadioGroup.void OnCheckedChanged(RadioGroupgroup, switch(checkId){ case R.id.chk: break;
});
4、事件:
键盘
et.setOnKeyListener(new View.OnKeyListener(){ publicboolaenonKey(View arg0,int arg1,KeyEvent arg2){
触屏 id(arg1 == KeyEvent.KEYCODE_A){ publicbooleanonTouchEvent(MotionEvent event){ if(event.getAction()== MotionEvent.ACTION_DOWN)float x = event.getX();
第三章布局
1、四种布局:线性,帧,表格,相对
线性布局:控件在布局中呈横向或纵向线性排列(线性布局的嵌套可以代替除帧布局之外的大多数布局)
帧布局:层状排列的布局(控件之间的覆盖)
表格布局:设置layout_row和layout_column确定空间位置(为0表示第一行,第一列)
跨越多行或多列layout_rowSpanlayout_columnSpan
相对布局:(找好参照物)
Layout_alignParentBottom 与父控件底边对齐 Layout_centerVertical 垂直方向上对父控件居中 Layout_alignLeft 和以定位的子控件左边界对齐 Layout_above 在定位的子控件上方
2、布局中的常用属性:
单独指定某一边的边距(控件与其他控件)Layout_marginLeftlayout_marginRightlayout_marginToplayout_marginBottom 控件内部内容与控件边界的距离 PaddingButtom=“39px” 是否可见visibility
应用:计算器归零和退格键
占用一个位置
第四章资源文件
一、Value1、String资源
1、目录:
res/values/string.xml2、格式
Hello world!
android:text=“@string/hello_world” String s = getString(R.string.hello_world);
3、R文件代码
public static final cla string { public static final inthello_world=0x7f050001;}
4、语言转换,同一name,对应不同值
2、Style1、格式
2、使用
使用系统自带格式
3、步骤
3、color1、格式
二、drawable1、使用
在res文件夹下,新建drawable文件,将图片复制到此目录。Drawabledrawable = getResources().getDrawable(R.drawable.a)android:src=“@drawable/img0” 第五章选择控件
1、四种选择控件
ListView,Spinner(下拉菜单),GridView(二维选项网格),Gallery(水平排列列表框)
2、Listview的适配器有几种?
1、Baseadapter【自定义的适配器】
步骤:
自定义类继承BaseAdapter,四个方法(项的个数datasource.size()、返回项arg0、返回项idarg0、返回项的view),当view为一项时
TextViewtv = new TextView(MainActivity.this);Tv.setText(datasource.get(arg0));Return tv;当 view为多项时
//布局文件解析成View LayoutInflaterinflater = getLayoutInflater();
View row = inflater.inflater(R.layout.listitem,arg2,false);//找到相应控件
TextViewtv =(TextView)row.findViewById(R.id.textView1);//设置显示内容
Tv.setText(datasource.get(arg0));return row;
2、Arrayadapter【单一数据的适配器】
3、Simpleadapter【不需要重写的自定义适配器】
3、Simplecursoradapter【为数据库提供的适配器】
3、Item点击监听事件
四个参数分别为:你现在点击的控件AdapterView、点击的项、点击的数据的位置、项的id。
4、数据刷新:
5、持有者优化(baseadapter)
1、步骤:
自定义Wrapper
自定义自定义类继承BaseAdapter,四个方法(项的个数datasource.size()、返回项arg0、返回项idarg0、返回项的view)
当row为空,生成新的。通过setTag()传递view。
2、在持有者优化中常见的错误
1.出现在项布局文件中【项布局的控件可能会和其他控件id重复】
2.出现在解析优化的时候。传入的context不正确。【getApplicationContext不建议】Activity类.this 解析的布局关联错误
3.解析优化的时候写了if没有写else【导致wapper为空】 4.Getview方法中没有return view 而是默认return null; 5.在持有者关联控件时view.findViewById,View丢掉了
使用选择控件:
优化:为什么要对listview进行优化呢?(节省资源,提高效率)
6、其他选择控件
1.Spinner(下拉菜单)
用法
点击事件
下拉方式
2.gridview 用法
Xml
第六章高级控件和容器
1、进度条一共有几种:
1.progrebar
例图
2.seekbar 设置拖动图标
点击事件
3.rating 两颗已亮,每次最少加两颗星
2、TabHost和ViewFlipper 1.tabhost 布局文件
关联添加
不要忘了tabHost.setup();
设置图标
动态添加tabhost项,利用 选项卡内容工厂new TabContentFactory()
2.ViewFlipper3、自定义控件
1.四种思路
2.简单自定义控件的步骤:
1.创建一个类,集成(view或者布局或者是其他控件)2.重写三个构造方法
3.如果自定义控件可点击,重写相应的点击事件(注意:不是点击监听)4.使用【在xml布局文档中使用包名+类名的方式来引用控件】 5.如果是集成的布局,那么我们可能会需要创建公开的监听方法,来实现自定义控件的子控件某些监听
实例,继承与现有控件,重写点击事件
3.复杂自定义控件的步骤:
实例,继承于布局LinearLayout
实例,继承与FrameLayout
第七章菜单
Android中常用菜单有三种: 选项菜单(option menu)上下文菜单(context menu)子菜单(sub menu)【次级菜单】
选项菜单
1.写法
showAsAction【actionbar】 选项菜单的创建过程
重写activity的onCreateOptionsMenu,动态或者静态加载菜单 //(选做)调用menuitem.seticon();为菜单项设置图标
重写activity的onOptionsItemSelected()进行点击事件的响应
直接添加也可以,四个参数
选项菜单能够显示出来的最多有6个,选项菜单的项多于6个时,那么多出来的菜单项就会放在更多选项中进行显示
2.点击事件
3.动态添加item
4.XML
上下文菜单:
1.官方解释:
当用户长按activity界面时,弹出的菜单就是上下文菜单;
2.上下文菜单的创建步骤:
1.创建菜单:重写onCreateContextMenu,动态或静态去添加菜单项 2.创建响应事件:onContextItemSelected 3.为控件或视图注册上下文菜单:registerForContextMenu【ps:注册方法,控件或视图作为参数】
上下文 Context:
activity的context(界面上下文)
获取界面上下文:在activity中默认就可以获取到 应用的context(应用上下文)
通过getApplication();getApplicationContext();
子菜单【次级菜单】
1.官方解释:
子菜单就是将相同功能的分组进行多级显示
2.子菜单的创建方式:
菜单组
1.组的创建
2.常用属性
设置一组都不可点击
设置不可见
设置一组为单选
设置两组单选,设置字体颜色 大小
第八章消息和对话框
1、Dialog 1.用法
2.设置按钮点击事件
3.四种设置主体方法
设置list
多选框
自定义布局
2、Toast 1.普通用法
2.自定义
View可以使一个控件,一个布局
3、其他对话框
1.DatePickerDialog&TimePickerDialog&ProgreDialog 默认显示日期为2000年2月1日,月份从0开始
默认显示时间为10点21分,24小时制
横向,可加文字
4、自定义Dialog 1.思路
自定义Style
2.代码
第九章
Activity的生命周期
1、简介
2、开启与关闭
3、创建
创建一个布局、创建一个类继承activity、重写OnCreate方法、关联布局文件、关联控件、注册activity 入口activity的action写法
Action和category可以有多个,但是action和category一定要一一对应
4、Activity的生命周期
onCreate->onstart->onresume->onPause->onStop->onDestory onCreate->第一次创建activity时执行(只要当前activity不被销毁【只要当前的生命周期没有执行onDestory,那么onCreate就不会被执行第二次】)
【做一些数据或者控件的初始化操作】 onstart-> 界面可见
Onresume-> activity 获得焦点(界面可见并且可操作)onPause->activity失去焦点(界面可见但不可操作)onStop->界面不可见
onrestart->onstart->onresume->onPause->onStop->onDestory 3+4=7;
三层循环(生命周期的循环)+四个阶段 = 7个方法
三层循环
activity四个阶段:
1.开始activity:onCreate->onstart 2.Activity失去焦点:onresume->onPause 3.Activity重新获取焦点:onPause->onresume 4.关闭activity:onPause->onStop->onDestory
5、重构传参
1.第一次oncreat,bundle为空,需要判断。放在onRestoreInstanceState就不会了
2.横竖换屏,屏幕尺寸改变不会影响
第十章
Intent1、Activity启动
1.显示
第一种:Intent intent = new Intent(MainActivity.this,SecondActivity.cla);第二种:ComponentName 第三种:intent.setCla(MainActivity.this,SecondActivity.cla);第四种:intent.setClaName(“包名”,”包名+类名”);
2.隐式启动,调用action name
当两个action一样时;会进入选择
3.Intent开启流程
4.LaunchMode2、Intent传参
1.可传bundle,如果值没传进去,可设置默认
3、Activity返回
1.startActivityForResult执行流程:
(activity a , activity b;在a中启动b,然后在b中做操作给a返回结果)(1)在a中使用startActivityForResult来开启b【注:在启动时请求码requestCode要注意】
(2)在b的onCreate获得a传过来的intent(使用getIntent方法),做操作获取数据。把结果放进intent,使用setResult方法把结果传回给a 【注:setResult方法之后一定要关闭当前activity】
(3)在a中重写方法onActivityResult,在方法中判断请求码和结果码,判断成功后,从intent中获取结果数据,并更改UI界面
第十一章
Service1、本地服务的开启
1.startservice方法启动
流程
StartService关闭服务
2.bindservice方法启动