android小知识点
来源:互联网 发布:电信会屏蔽哪些端口 编辑:程序博客网 时间:2024/06/08 06:46
1. 在tablayout中由于tab条目较少显示成这个样子
将app:tabGravity=”center”改为app:tabGravity=”fill”
2. viewpager的条目是否可见
public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); Log.e("sout", "setUserVisibleHint: "+isVisibleToUser ); }
3. retrofit2.3想要使用
GsonConverterFactory.create()和RxJavaCallAdapterFactory.create()
必须要添加:
compile ‘com.squareup.retrofit2:converter-gson:2.3.0’
compile ‘com.squareup.retrofit2:adapter-rxjava:2.3.0’
4. 在XML中InflateException
<View 的V一定要大写,小写会错,但是不会报错。android.view.InflateException: Binary XML file line #36: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
5.定时操作
除此之外还有其他方式定时。
new Timer().schedule(new TimerTask() { @Override public void run() { //这里面子线程执行 if (swipeRefreshLayout.isRefreshing()) { handler.sendEmptyMessage(0); } } },5000);
6.TextView设置字体
7.获取cache文件夹大小
PS:File file = new File(String.valueOf(getContext().getCacheDir()));/** * 获取文件夹大小 * @param file File实例 * @return long */ public static long getFolderSize(java.io.File file){ long size = 0; try { java.io.File[] fileList = file.listFiles(); for (int i = 0; i < fileList.length; i++) { if (fileList[i].isDirectory()) { size = size + getFolderSize(fileList[i]); }else{ size = size + fileList[i].length(); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //return size/1048576; return size; }
8.将long数据自动转化为kb、mb、gb
import android.text.format.Formatter;String fileSize = Formatter.formatFileSize(context, long);
9.删除指定目录下文件及目录
/** * 删除指定目录下文件及目录 * @param deleteThisPath * @param filePath * @return */ public void deleteFolderFile(String filePath, boolean deleteThisPath) { if (!TextUtils.isEmpty(filePath)) { try { File file = new File(filePath); if (file.isDirectory()) {// 处理目录 File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { deleteFolderFile(files[i].getAbsolutePath(), true); } } if (deleteThisPath) { if (!file.isDirectory()) {// 如果是文件,删除 file.delete(); } else {// 目录 if (file.listFiles().length == 0) {// 目录下没有文件或者目录,删除 file.delete(); } } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
10.配置Butterknife
有两个,不然空指针
compile 'com.jakewharton:butterknife:8.7.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
11.用while遍历二维数组
int row = 0; int col = 0; int dp[][] = new int[4][4]; while(row<array.length){ dp[row][col] = 9; col++; if (col == array[row].length){ row++; col = 0; } }
相较于两个for的话,这种占用内存比较小
12.反转ArrayList
Collections.reverse(list);//使用Collections的reverse方法,直接将list反转
13.栈和队列
栈:先入后出
队列:先入先出
push:入栈
pop:出栈
14.斐波那契数列
1、1、2、3、5、8、13、21、34、……
F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
15.进制转换
java进制转换java中进行二进制,八进制,十六进制,十进制间进行相互转换 十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制转成十进制Integer.valueOf("FFFF",16).toString()八进制转成十进制Integer.valueOf("876",8).toString()二进制转十进制Integer.valueOf("0101",2).toString()
16.Parcelable和Serializable
将对象的引用传给Activities或者Fragments需要用到,
Serializable:使用简单,实现Serializable接口即可。
过程满,产生许多临时对象,容易出发垃圾回收。(反射)
Parcelable: 使用复杂,多写许多代码,速度快。
17.函数的重载与返回值无关
18.一行初始化ArrayList
ArrayList<String> places = new ArrayList<String>(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));
19.ArrayList的排序,反转,一行初始化
ArrayList<Integer> integers = new ArrayList<>(Arrays.asList(9,8,7,6,5,4,32,2,1,5));//一行初始化 Collections.sort(integers);//排序,默认升序 Collections.reverse(integers);//反转 //自定义排序 Collections.sort(integers, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { //返回正数,o1在o2前面 //返回负数,o1在o2后面 return (o1-o2)==0 ? (o2-o1):(o1-o2); } });
19.利用ArrayList来排序map
//map里面放的是Map.EntryArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<>(); //map.entrySet()可以返回一个集合 Set<Map.Entry<Integer, Integer>> entries = map.entrySet(); list.addAll(entries); Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() { @Override public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) { o1有getValue方法 return 0; } });
20.Hashmap和LinkedMap
Hashmap往里面put,它并不是按照put的顺序排放的
LinkedMap总是按照put的顺序排放。
阅读全文
0 0
- Android小知识点汇总
- Android 小知识点
- Android小知识点
- Android开发小知识点
- 【android】小知识点总结
- Android小知识点
- android 小知识点
- android小知识点
- android开发小知识点
- Android小知识点
- Android开发小知识点
- Android开发小知识点
- Android小知识点
- android小知识点(一)
- Android小知识点收集
- Android小知识点
- Android的小知识点
- android开发小知识点
- Spring注解方式集成Kafka(spring-kafka的使用)
- 工厂设置需求分析
- 通俗易懂地讲解牛顿迭代法求开方
- 面向过程的C++和面向对象的C++编程语言
- Android 透明状态栏 像QQ那样
- android小知识点
- Oracle锁表查询及解锁kill进程简介
- 线段树模板
- PAT乙级1026. 程序运行时间(15)
- POJ1226
- Git log命令查看所有的历史版本
- python __new__和__init__的区别
- ubuntu16.04安装Anaconda
- 大数据量下高并发同步的讲解