android 笔记一
1.Fragment创建
extents Fragment
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
rootView.findViewById(R.id.ShowAnotherFragment).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().beginTransaction()
.addToBackStack(null)
.replace(R.id.fragment, new AnotherFragment())
.commit();
}
});
2.Intent的使用
使用意图 把上一所活动的数据 传递 到下一个活动,
intent.putExtra("msg", data);
String data = intent.getStringExtra("msg");
使用意图 将下一个活动的数据 返回 到上一个活动
intent.putExtra("msg","Hello FirstActivity");
setResult(RESULT_OK, intent);
startActivityForResult(intent1, 1);
protected void onActivityResult() {
switch (requestCode){
case 1: if(resultCode == RESULT_OK){
} break ; }
public static interface NavigationDrawerCallbacks {
/**
3 对于Fragment 在活动中的传递的例子(LearnFragment)理解
1. MainActivity类加载一个activity_main.xml,如果界面没有数据,加载一个MainActivityFragment类;
2. MainActivity类加载一个fragment_main.xml,界面有两个按钮,一个按钮显示另一个Fragment,另一个按钮开启侧边栏活动(SliderActivity类);
3. SliderActivity类的onCreate()加载一个activity_slider.xml界面,里面有FrameLayout布局和自定义fragment布局,FrameLayout可以重叠作为背景,
fragment加载NavigationDrawerFragment类.
SliderActivity类的onCreateView()加载fragment_slider.xml界面,覆盖activity_slider.xml界面里面有FrameLayout布局.
4. NavigationDrawerFragment类的onCreateView()方法中,创建View view.inflate填充一个R.layout.slider_content界面,
slider_content.xml界面有一个按钮,实现按钮点击跳转功能,
然后在NavigationDrawerFragment类中创建一个NavigationDrawerCallbacks接口,写一个onGoToJkxuClicked()方法.
最后在SliderActivity类中实现NavigationDrawerCallbacks接口,重新onGoToJkxuClicked()方法,方法中具体实现碎片的切换.
4.关于LayoutInflater类inflate(int resource, ViewGroup root, boolean attachToRoot)方法三个参数的含义
resource:需要加载布局文件的id,意思是需要将这个布局文件中加载到Activity中来操作。
root:需要附加到resource资源文件的根控件,什么意思呢,就是inflate()会返回一个View对象,
如果第三个参数attachToRoot为true,就将这个root作为根对象返回,否则仅仅将这个root对象的LayoutParams属性附加到resource对象的根布局对象上,
也就是布局文件resource的最外层的View上,比如是一个LinearLayout或者其它的Layout对象。
attachToRoot:是否将root附加到布局文件的根视图上
5.如何在Activity 中使用 Fragment
创建一个fragment.xml---fragment(Fragment)---activity.xml布局嵌套fragment---activity(Activity)调用getFragmentManager().findFragmentById(R.id.fragment)方法
6.一个新闻内容页面
1.创建一个新闻类
2.创建一个新闻列表布局,创建一个新闻列表布局的适配器;
3.创建一个新闻内容布局,创建一个碎片加载新闻内容布局;
4.创建一个显示新闻内容布局(可以引用之前的碎片新闻内容布局),创建一个活动类来显示新闻内容;
5.创建一个显示新闻列表布局,创建一个碎片来加载这个布局{
在onAttach()方法数据的初始化,完成2的适配器操作;
然后在onCreateView()方法 ,加载显示新闻列表布局 ,显示新闻列表; 然后新闻列表setOnItemClickListener(),在方法中传递数据,并启动3活动类;
}
7. Fragment 的总结
1活动中的使用碎片
Fragment fragment = (Fragment)getFragmentManger().findFragmentById(R.id.fragment);
2碎片中得到活动
MainActivity activity = (MainActivity)getActivity()
3,碎片通过活动获取另外一个碎片
8. BroadcastReceiver
1.
全局发送标准广播sendBroadcast(intent);
全局发送有序广播sendOrderedBoadcast(intent,null)
全局接受标准广播 AndroidManifest.xml注册<receiver> <intent-filter><action android:name="com,example.broadcasttest.MY_BROADCAST">
全局接受有序广播 加上优先级<intent-filter android:priority>
2.
应用内的广播
发送广播: sendBroadcast(intent)
注册广播监听器:registerReceiver(BroadcastReceiver实例,IntentFilter实例)
9. Activity Intent的FLAG
1.Intent.FLAG_ACTIVITY_NEW_TASK 取出一个栈的活动或者重新创建一个活动
2.FLAG_ACTIVITY_SINGLE_TOP 相当于活动模式中的singletop
3.FLAG_ACTIVITY_CLEAR_TOP 相当于活动模式中的SingleTask
10. Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
singleTop 在栈顶的活动不会重新创建
singleTask 不在栈顶,创建唯一的活动实例
singleInstance 单一实例,其他程序调用活动时,重新创建一个单独的返回栈
11.
一。获得 LayoutInflater 实例的三种方式(比如 LayoutInflater.from(context).inflate(R.layout.title, this))
1.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater()
2.LayoutInflater localinflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
3. LayoutInflater inflater = LayoutInflater.from(context);
二。inflate方法
public View inflate(int Resourece,ViewGroup root)
作用:填充一个新的视图层次结构从指定的XML资源文件中
reSource:View的layout的ID
root: 生成的层次结构的根视图
12.简单的那个View的加载 或 使用Fragment 加载View
比如你用view, 很多逻辑代码可能都需要写在Activity里,如果view很多.
耦合度会很高。用Fragment则可以各自管理,可以看作一种解耦吧
12.
数据存储:文件存储 SharePreference和数据库存储
1.保存文件存储
FileOutputStream out = openFileOutput("文件名",Context.MODE_PRIVATE);
BufferedWriter writer = new BufferdeWriter(new OutputStreamWriter(out));
writer.wreter("111111111111111111--data");
2.读取文件存储
FileInputStream in = openFileInput("文件名");
BufferedRead read = new BufferedReader(new InputStreamReader(in));
StringBuilder content = new StringBuilder();
content.append(reader.readLine())
3.SharePreference保存
SharePreference.Editor editor = getSharedPreferences("文件名",MODE_PRIVATE.edit());
editor.putString("KEY","值")
editor.commit();
4.SharePreference读取
SharePreferences pref = getSharedPreference("文件名",MODE_PRIVATE);
String string = pref.getString("key","默认值")
5.SQLiteOpenHelper db
创建数据库 db.execSQL("create table person(id integer primary key, name text,age integer)")
6.SharePreference 使用事物 , 数据要么全部完成要么不完成.
SQLiteDatebase db = (new SQLiteOpenHelper).getWritableDatabase();
da.beginTranscation();//开启事物
ContentValues values = new ContentValues();
values.put("name","xxx");
db.insert("数据库名",null,values)
db.setTransactionSuccessful//事务开启成功
db.endTransaction();//事务结束
android 笔记一的更多相关文章
- Android笔记——Android中数据的存储方式(二)
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
- Android笔记:触摸事件的分析与总结----TouchEvent处理机制
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://glblong.blog.51cto.com/3058613/1559320 ...
- Android 笔记之 R 文件
Android笔记之R文件 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: red; te ...
- Android 笔记之 Android 系统架构
Android笔记之Android系统架构 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: ...
- Android笔记之使用Glide加载网络图片、下载图片
Glide简介 不想说太多,真的很方便:P)可以节省我不少时间 GitHub地址:https://github.com/bumptech/glide 加载网络图片到ImageView Glide.wi ...
- Android笔记--View绘制流程源码分析(二)
Android笔记--View绘制流程源码分析二 通过上一篇View绘制流程源码分析一可以知晓整个绘制流程之前,在activity启动过程中: Window的建立(activit.attach生成), ...
- Android笔记--View绘制流程源码分析(一)
Android笔记--View绘制流程源码分析 View绘制之前框架流程分析 View绘制的分析始终是离不开Activity及其内部的Window的.在Activity的源码启动流程中,一并包含 着A ...
- Android笔记--自定义控件仿遥控器的圆形上下左右OK圆盘按钮
原文:Android笔记--自定义控件仿遥控器的圆形上下左右OK圆盘按钮 上面就是几张预览图!代码在最底下 主要就两个步骤,画图.监听点击 1.整个控件基本上是一步步画出来的,重写onDraw方法开始 ...
- 我的Android笔记--我对安卓系统的一些了解
敲了这么长时间代码,记录一下我对Android的一些概念,下面大部分内容来源自网络资料和官方给的文档. 1,Android操作系统的核心属于Linux的一个分支,具有典型的Linux调度和功能 ...
- Android笔记——Android中数据的存储方式(三)
Android系统集成了一个轻量级的数据库:SQLite,所以Android对数据库的支持很好,每个应用都可以方便的使用它.SQLite作为一个嵌入式的数据库引擎,专门适用于资源有限的设备上适量数据存 ...
随机推荐
- 巧用Salt,实现CMDB配置自动发现
随着互联网+新形势的发展,越来越多的企业步入双态(稳敏双态)IT时代,信息化环境越来越复杂,既有IOE三层架构,也有VCE.Openstack等云虚拟化架构和互联网化的分布式大数据架构.所以,企业急需 ...
- C++模拟Http/Https访问web站点
一.概述 1.Http与Https的区别与联系 在OSI参考模型中Http与Https均属于应用层协议.Http即Hypertext Transfer Protocol,超文本传输协议:而Https为 ...
- 第六章并发编程,异步执行框架executor
异步执行框架executor是一个接口,只有一个方法.接受一个Runnable做为参数,执行任务. 将任务的执行与提交解耦. 1:executor package java.util.concurre ...
- POJ1273:Drainage Ditches(最大流入门 EK,dinic算法)
http://poj.org/problem?id=1273 Description Every time it rains on Farmer John's fields, a pond forms ...
- HTML5游戏开发系列教程10(译)
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-10/ 最后我们将继续使用canvas来进行HTML5游戏开发系列 ...
- CTR预估中的贝叶斯平滑方法(一)原理及实验介绍
1. 背景介绍 广告形式: 互联网广告可以分为以下三种: 1)展示广告(display ad) 2)搜索广告(sponsored search ad) 3)上下文广告(contextual ad) ...
- Java面向对象---重写(Override)与重载(Overload)
一.重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说 ...
- 20145105 《Java程序设计》第4周学习总结
20145105 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 一.何谓继承 (一)继承共同行为 继承基本上就是避免多个类间重复定义共同行为. 如:下述代码将剑 ...
- [数据库] - org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection
MySQL的驱动改名了,如果使用原来的com.mysql.jdbc.Driver 那么会提醒驱动不正常了,那么新的MySQL驱动名为:com.mysql.cj.jdbc.Driver 之后还报错,如题 ...
- NOIP2016 “西湖边超萌小松鼠” 模拟赛
总的来说,这套题的难度比较接近近些年来Day1的真实难度,认为非常值得一打 GotoAndPlay 题目大意 询问这个图上是否存在一种跳法,能跳到这个图上的每一个点 题目解析 犯了个低级错误,双向边忘 ...