第三章:
1.ListView 手动加载实现思路?
1.为ListView增加一个footView脚视图(ListView对象的addFootView方法)
2.脚视图是一个Button按钮,设置监听事件,调用加载更多数据的addMore方法
3.当手动滑到ListView底部时,可以看见Button按钮
4.点击Button按钮去加载更多数据
2.ListView 自动加载(分页加载)实现思路?
1.为ListView设置一个滚动监听器setOnScrollListener方法
2.传入一个OnScrollListener对象,重写两个方法onScroll方法、onScrollStateChanged方法
3.在onScroll方法中判断是否到达ListView底部(手机屏幕第一个可见子条目索引+屏幕可见子条目 个数==ListView集合中总的个数&&总个数>0)
4.在onScrollStateChanged方法中判断是否手指离开并且屏幕静止(SCROLL_STATE_IDLE),如果满足 该条件并且到达ListView底部,调用加载更多数据的addMore方法。
3.ListView在异步任务中加载图片如何防止图片错乱?
1.在Adapter的getView方法中通过异步加载图片前,给图片组件设置默认图片 (vh.imageView.setImageResource(R.mitmap.ic_luncher))。
2.将图片组件与对应网址绑定(vh.imageView.setTag(图片网址))。
3.在异步任务类的onPostExcute方法中,获取iamgeView保存的图片网址,与DoInBackground方法 中的图片网址进行比较。如果一致就加载图片,不一致不做任何操作。
4.简述抽象类和接口的区别?
1.抽象类使用abstract修饰,接口使用interface修饰。
2.抽象类中可以有成员变量和常量,接口中成员变量只能有常量。
3.抽象类中可以有静态代码块和静态方法,接口中不能有。
4.抽象类中可以有普通方法和抽象方法,接口中只能有抽象方法。
5.抽象类和接口中的抽象方法子类都必须实现。
5.简述final、finally、finalize()各自的作用?
Final:可以用来修饰类(不能被继承String),属性(常量),方法(不能重写)。
Finally:处理异常时和try...catch结合使用,用于释放资源。
Finalize:垃圾回收期调用的方法,用于回收垃圾对象(该对象没有任何引用)。
第四章:第五章:
1.简述ToolBar中的常用方法有哪些,各自的作用?
设置返回键:setNavigativeIcon
设置logo:setLogo
设置标题:setTitle (要在setSupportActionBar之前调用)
设置副标题:setSubTitle
设置菜单监听:setOnMenuItemClickListener
2.Menu的add方法的四个参数都是什么?作用是什么?
add(组id,item的id,优先级(int类型),标题)
组id:为item分组
item的id:为item添加唯一id
优先级(int类型):菜单的排列顺序,值越小越靠前,值一样看谁先添加
标题:item显示的文本内容
3.Android中的菜单都有哪些?各自有什么区别?
选项菜单:在右上角的ActionBar的位置显示,一般固定,点击menu菜单时第一次会调用onCreateOptionsMenu方法。
上下文菜单:为某个View组件注册一个长按是显示的一个菜单,每次点击View的时候都会调用onCreateContextMenu方法。
侧滑菜单:在右侧或者左侧滑出,需要结合Drawerlayout抽屉布局来使用,可以添加头布局和菜单布局。
4.Java中String类中常用的方法有哪些?
构造方法:
Byte[] bytes = {97,98,99,100,101,102,103,104,105,106};
String(byte[] bytes)
String(byte[] bytes,int startIndex,int count)
String(char[] chars)
String(char[] chars,int startIndex,int count)
方法:
转换:
转为字节数组:getBytes()
转为字符数组:toCharArray()
int类型转为String类型:String.valueOf(基本数据类型)
判断:
字符串是否为空:isEmpty()
以...结尾:endsWith(String)
以...开头:startsWith(String)
trim():去除首尾空格。
replace(“JAVA”,”M”):将字符串中所有JAVA替换为M
replaceAll(“\\d”,””):消除字符串中所有数字
indexOf(“ab”):获取ab在字符串中第一次出现的位置。
5.Java中开启线程有几种方式?分别如何实现?
常用的是两种:
继承Thread类:
class MyThread extends Thread{
public void run(){
//执行的代码...
}
}
1.自定义类继承Thread类。
2.重写run方法,在run方法中写线程要执行的任务。
3.测试类:创建MyThread对象调用start()方法启动线程。
实现Runnable接口:
class MyRunnable implements Runnable{
public void run(){
//执行的代码...
}
}
测试类:
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
1.自定义类实现Runnable接口
2.在测试类中创建Runnable对象
3.将Runnable对象作为参数创建Thread对象
4.调用Thread对象的start()方法启动线程。
6.侧滑菜单的使用步骤?DrawerLayout的侧滑菜单显示隐藏监听?
使用步骤:
1.添加侧滑依赖
2.将Activity跟布局改为DrawerLayout
3.在DrawerLayout的第二个直接组件位置使用NavigationView侧滑菜单组件
显示与隐藏的监听:
调用DrawerLayout对象的addDrawerListener方法传入一个DrawerListener对象
在重写的onDrawOpened、onDrawClosed方法中监听菜单的显示与隐藏。