我是一个android初学者,这是我在学习后的一些整理,希望对初学者们有一定的帮助,自己也正好留作纪念。漫漫求知路,大家一起加油!
一.五大页面布局:
1.线性布局:所有控件垂直或水平摆放
2.相对布局:控件可相对父控件或同级别控件摆放位置
3.帧布局 :前景和背景
4.绝对布局:相对于坐标点的布局
5.表格布局:每一行可放多少控件
二.自定义UI控件
1.自定义TextView
2.自定义Dialog
3.自定义组合控件
4.自定义SeekBar
5.更多
三:第三方框架
1.SwipeRefreshLayout 下拉刷新(需要下载support v4 19.1)
A.xml中<android.support.v4.widget.SwipeRefreshLayout
和普通控件一样设置属性 >
在里面可以放置任何一个控件,例如ListView,gridview等。
</android.support.v4.widget.SwipeRefreshLayout>
B.findViewById对刷新控件进行实例化
C.setColorScheme(最多4中颜色),设置刷新的颜色样式
D.设置OnRefreshListener监听事件,在事件中用handler延时发布
E.在监听中设置数据的更新等,然后setRefreshing(false)停止刷新
2.SlidingMenu 滑动式菜单栏
A.导入包SlidingMenu_library(需在同一路经)//需要删除原工程的supportV4.jar包
B.在Main实例化SlidingMenu对象sm
C.设置滑动模式(例:SlidingMenu.LEFT)
设置监听滑动触摸范围
设置阴影的颜色 ID(需要用dimen)
设置阴影的宽度 ID(需要用dimen)
设置menu全部打开时主界面与屏幕边框的距离
设置淡入淡出(true)
设置淡入淡出的值
绑定acticity并设置绑定模式
设置Mneu的layout(setMenu)
通过getMenu()获取Menu的Layout转换的View
四.四大组件
1.activity:
可通过设置action达到进程间通信
2.ContentProvider(内容提供者)
A.通过getContentResolver()实例化ContentResolver
B.传入源码写好的对应的Uri
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
C.调用内容解析者的query(查询)方法传入URI返回Cursor
D.使用Cursor获取想要的数据contacts.moveToNext()判断
contacts.getString(contacts.getColumnIndex("contact_id")
3.BroadCastReceiver(广播接受者)
注册方式:(1)注册表(2)java文件中
A.在JAVA中注册广播,传入一个广播接受者对象和一个IntentFilter(意图过滤器)
IntentFilter中添加需要的action(一般是系统写好的)
B.实例化BroadCastReceiver重写onReceive(Context ,Intent) 方法
C.通过Intent对象传入key获取广播时发送的值
D.用完后记得注销广播
4.Service(服务)
(一) 服务分为本地服务和远程服务(都需在清单文件(android Manifest.xml)注册)
(二) 服务开启的两种方式:startService(后台运行)和bindService(与acticity进行交互)
(三) 需要写一个类继承Service类(重写需要的方法)
(1)本地(bind)
A.新建类继承Service重写onBind(intent:为Activity跳转时传过来的)方法,
并返回Ibinder对象(默认返回为空)
B.写一个类继承Ibinder接口重写里面的方法
C.用bindService(intent对象 ,ServiceContent对象,操作选项绑定)绑定服务
D.在activity写一个内部类继承ServiceContent接口,重写两个方法
(a).onServiceConnected(ComponentName, IBinder )连接后调用
这里的IBinder 就是之前Service返回的IBinder
(b).onServiceDisconnected(ComponentName)异常中断后调用
(2)远程(bind)
A(提供服务).
(a)新建一XX接口将其后缀转换成aidl
(b)在Service中写内部类YY继承XX.Stub 重写xx接口的方法
(c)xml注册时为service添加一个action
B(交互服务).
(a).在一个新工程中建acticity
(b).新建和工程1同名的包,将aidl复制到包里
(c).在activity中新建Intent传入之前工程1的Service的action
(d).bindService()绑定服务
(e).绑定服务时传入的服务连接对象返回的 Ibinder就是XX.Stub对象
(f).调用xx.Stub.asInterface(IBinder)将其转换成aidl接口类型的对象
(g).调用对象的方法进行远程交互
五.四大存储方式
(1)sharedPerferences(轻量级存储,以键值存入 保存为xml)
A.getSharedPreferences("text",MODE_WORLD_WRITEABLE)实例化一个对象,第一个参数不填默认为类名作为文件名
B.通过getEdit()获取编辑器.
C.通过交数据将其保存在对应xml中
D.取出数据
通过sharedPerferences对象的get方法可取出数据
(2)File(文件存储)
A. new File(路径+文件扩展名)
B. file.exists()判断文件是否存在,不存在则createNewFile()
C.相对于app的写入写出(字符流和字节流)
新建流传入文件(如果是缓冲流写入的话的话flush才是真正的写进文件)
根据流进行read(流对象)write(流对象)
(3)SQLite(数据库)
A.新建类xx继承SQLiteOpenHelper,写一个带4参的构造(context,数据库名,光标工厂,版本号).
B.重写两个方法
onCreate(SQLiteDatabase db)创建时调用(进行一些表的创建)
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)升级时调用
C.写一个功能类实现数据库的增删查改(execSQL/rawQuery)
在此类中需要建xx类的对象,通过xx对象获取可写/可读的db,进行操作
(4)Internet(网络存储)
A.通过URL对象.openConnection()发送请求将返回对象强转成HttpURLConnection类型
B.设置超时时间setConnectTimeout(1000)
C.设置请求方式setRequestMethod("get")
D.根据响应码判断是否请求成功(200成功,404网页不存在,503无响应)
E.根据HttpURLConnection对象.getInputStream得到返回的输入流
F.写方法把输入流变成输出流,并以String(输出流,编码类型(utf-8)),转成String
六.AQuery
导入jar包
AQuery .id(R.id.button).text("Click Me").clicked(this, "buttonClicked");(简化控件,监听)
AQuery .ajax()网络访问交互
七.JSon
String str="{\"name\":\"Iyangc\",\"address\":{\"province\":\"四川\",\"city\":\"成都\"}}";(JSONObject格式)
新建JSONObject xx=new JSONObject(str)
获取数据
xx.getString(键值)
八.Gson
Gson.toJson(bean)
Gson.formJson()
数据集合时 Type type = new TypeToken<List<Ure>>(){}.getType();
List<Ure> l=Gson.fromJson(json格式的字符串,type);
九.XML(pull)解析
A.获取一个xml文件将其打开为输入流inputStream
B.Xml.newPullParser()新建XmlPullParser对象
C.解析对象.setInput(输入流,"utf-8(编码格式)"),设置需要解析的输入流
D.对象.getEventType!=XmlPullParser.END_DOCUMENT判断文件是否读到结尾
E.getName()获取节点名字
F.getnexttext()获取节点内的内容
H.完成一次后移动到下一节点继续判断
十.Socket(套接字)
(端口号相当于一个应用的标识码)
(1) 服务器(Srevice)
A.new ServerSocket(指定端口号)(建服务器套接字)..对象.accept()阻塞式接收
B.通过getInputStream().获取输入流(客户端传过来的)
C.通过getOutputStream().获取本服务器的输出流,通过wrate(),将内容传到客户端
D.不用后可关闭套接字close().这时无法进行访问
(2) 客户端(Client)
A.new Socket("Ip",端口号)实例化对象
B.通过对象get输入/出流.或写或读文件