将app:tabGravity=”center”改为app:tabGravity=”fill”
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
Log.e("sout", "setUserVisibleHint: "+isVisibleToUser );
}
GsonConverterFactory.create()和RxJavaCallAdapterFactory.create()
必须要添加:
compile ‘com.squareup.retrofit2:converter-gson:2.3.0’
compile ‘com.squareup.retrofit2:adapter-rxjava:2.3.0’
36: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
除此之外还有其他方式定时。
new Timer().schedule(new TimerTask() {
@Override
public void run() {
//这里面子线程执行
if (swipeRefreshLayout.isRefreshing()) {
handler.sendEmptyMessage(0);
}
}
},5000);
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;
}
import android.text.format.Formatter;
String fileSize = Formatter.formatFileSize(context, long);
/**
* 删除指定目录下文件及目录
* @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();
}
}
}
有两个,不然空指针
compile 'com.jakewharton:butterknife:8.7.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
int row = 0;
int col = 0;
int dp[][] = new int[4][4];
while(row9;
col++;
if (col == array[row].length){
row++;
col = 0;
}
}
相较于两个for的话,这种占用内存比较小
Collections.reverse(list);//使用Collections的reverse方法,直接将list反转
栈:先入后出
队列:先入先出
push:入栈
pop:出栈
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*)
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()
将对象的引用传给Activities或者Fragments需要用到,
Serializable:使用简单,实现Serializable接口即可。
过程满,产生许多临时对象,容易出发垃圾回收。(反射)
Parcelable: 使用复杂,多写许多代码,速度快。
ArrayList places = new ArrayList(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));
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);
}
});
//map里面放的是Map.Entry
ArrayList> list = new ArrayList<>();
//map.entrySet()可以返回一个集合
Set> entries = map.entrySet();
list.addAll(entries);
Collections.sort(list, new Comparator>() {
@Override
public int compare(Map.Entry o1, Map.Entry o2) {
o1有getValue方法
return 0;
}
});
Hashmap往里面put,它并不是按照put的顺序排放的
LinkedMap总是按照put的顺序排放。