imooc习题笔记


如有错误,请指正。

一、Activity

  1. onCreate 方法中可以用 setOnContentView() 方法来设置当前 activity 显示的布局;setOnContentView() 还可以设置自己的视图,eg:setOnContentView(new TextViwe(this))
  2. findViewById() 可得到控件的对象,然后就可以设置监听器、修改属性值等操作
  3. Activity 必须在 AndroidManifest.xml 声明,才能使用
  4. AlertDialog中可设置的三个按钮分别是,setPositiveButton(),
    确认按钮、setNegativeButton(),取消按钮、setNeutralButton()稍后提示的按钮
  5. activity生命周期:一个Activity从创建到销毁的过程
  6. 原有的 Activity 被新的 Activity 完全遮挡 时,需要依次经历 onPause()、onStop() ,但在 不完全遮挡 时,只经历 onPause()
  7. MainActivity 跳转到⾸次开启的 SecondActivity 的回调顺序为:onCreat() - onStart() - onResume()
  8. 当Activity从 onStop() 转换到到 onStart() ⽅法的过程中,还会执行 onRestart() 方法
  9. **Intent:** 它是一种意图,作用非常广泛,在使用 **Intent 传值** 时主要 以 **键值对的方式** 来完成,但是 **键** 只能时 **String 类型**

二、Fragment

  1. Fragment 是有⾃⼰的界⾯,但是 Fragment 是 Activity的⼀个组成部分,是附和在Activity上的⼀部分,因此 Fragment 的生命周期受 Activity 生命周期的影响
  2. 根据Android的官⽅⽂档,onCreateView() ⽅法就是⽤户第⼀次创建⾃⼰的界⾯时系统回调的⽅法。每个 Fragment 不⼀定要加载⾃⼰的界⾯,当没有界⾯时可以返回为空
  3. 根据官⽅API的相关规定,要 动态加载 Fragment 只要实现四个步骤就可以实现了,即:创建Fragment 的管理器;获取 Fragment 的事务对象并开启事务;调⽤事务的动态⽅法动态地添加,移除,替换 Fragment;最后是提交事务并不是关闭事务。
  4. 静态创建Fragment 的⼤体步骤:定义⼀个类让其继承Fragment类,重写OnCreateView()⽅法,加载Fragment的布局。

Fragment是所有碎⽚的⽗类,只要我们创建的类继承了Fragment它就是⼀个碎⽚。Fragment是Activity的⼀部分,它有⾃⼰的界⾯,这个界⾯的加载是在onCreateView()中实现的。

  1. Activity 向关联的fragment传值: Activity 通过 bundle 对象将其传递的值存放在里面,然后通过 setArguments(bundle)来传递,在 Fragment 中通过 getArguments()方法,按照键的唯一性来取值。
  2. Fragment和关联的Activity之间传递⼀个对象: Fragment 和关联的 Activity 的传递的是⼀个对象时,这个对象的类⼀定要实现Serializable接⼝,否则不能完成传值。在宿主 activity 中,创建 fragment 对象,通过 setArguments(bundle对象),将值放在 fragment 对象中,在 fragment 中,通过 getArguments() ⽅法按照键的唯⼀性来获取值。

三、ViewPager

  1. ⾃定义适配器继承 PagerAdapter ⽗类时需要重写的⽅法 :getCount()获取数据源的个数和 isViewFromObject(View view, Object object)视图⻚⾯需要关联这个object对象。
  2. Activity创建Fragment时传递参数使⽤的⽅法是 setArguments(Bundle bundle)取值时⽤的getArguments(Bundle bundle)⽅法。
  3. 为 TabWidget 添加id时要设置 Android ⾃带 id:android:id="@android:id/tabs"
  4. TabHost + ViewPager + Fragment 联合使⽤时,为ViewPager添加 OnPageChangeListener() 监听事件可以实现在切换 TabHost 标签⻚时实现相应的 Fragment 内容⻚的滑动事件。
  5. TabWidget 代表 TabHost 标签⻚中的按钮, 可以点击其中的按钮来切换选项卡

三、Handler

  1. Message obtain() 构造方法中带有的参数 what、arg1、arg2、obj等,但是没有tag
  2. 在使用 Handler 时,为防止内存泄漏,可以创建一个 class 来 extends Handler ,然后再 override handMessage() ,在此方法中发送消息。

四、AsyncTask 异步任务

  1. Android 中使用 AsyncTask 的作用:用于处理耗时操作,防止 UI 线程出现 ANR 现象。方便后台线程操作后 UI 的更新,实现了对 Thread 和 Handler 的封装,并且需要在主线程中进行调用。
  2. Android 中实现异步方式有两种:一种是通过 AsyncTask 来实现,另一种是通过 线程池 或者 多线程 来实现。
  3. AsyncTask 优点:只是封装了线程跳转的逻辑,并且能够在子线程中处理耗时操作,从而提高程序整体的运行效率,UI 的更新还是在主线程中的。
  4. 构建 AsyncTask : onPreExecute() 操作前的准备工作、dolnBackground() 耗时操作、onProgressUpdate() 更新进度、onPostExecute() 执行完操作后更新 UI 显示结果

五、ListView【上】(展示列表数据)

  1. adapter: AdapterView视图与数据连接的桥梁,用来处理数据并将数据绑定到AdapterView
  2. ArrayAdapter: 可以设置自己定义的泛型
  3. setAdapter(): 此方法可将ListView与适配器adapter连接起来

六、ListView【下】(实现隔行效果)

  1. getItemViewType()方法对应View是哪个类别
  2. getViewTypeCount()方法iew返回 总共多少个类别
  3. 然后再getView那里调用getItemViewType获得对应类别 (判断是哪一个view) ,再加载对应的View!

七、CardView

  1. xml中通过cardCornerRadius属性设置卡片的圆角大小,在Java代码中通过CardView对象的setRadius(float radius)方法设置圆角的大小

八、数据存储

  1. Android系统私有的外部存储,也就是与此app相关的内容,是随着应⽤程序的卸载⽽卸
    载的,公有的外部存储则不会
  2. Environment.getExternalStorageDirectory()获取外部存储的公有⽂件。Context对象的
    是getExternalFilesDir()⽅法,它是获取外部存储的私有⽂件
  3. Sqlite的内部结构的组成有4部分,分别是:内核,解析器,后端,附件

久、RecyclerView

1.可使RecyclerView显示动画的方法:notifyItemInserted()notifyItemRemoved()RecyclerView.Adapter的⽅法。

十、Glide图片框架

  1. Glide可以加载静态图片,也可以加载gif图片,且加载网络图片属于异步加载
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值