- 博客(109)
- 收藏
- 关注
原创 LinkedHashMap如何获取第一个键值
每天坚持输出,哪怕很小的知识点 @Test public void test_LinkedHashMap_findFirstKey(){ LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap<>(); linkedHashMap.put("1","1"); linkedHashMap.put("2","2”); // 关键代码
2022-03-13 21:49:15
3798
原创 kotlin var val关键字比较
关键字 说明 举例 var 声明可变变量 var a = 1(var a:Int = 1) a = 2 // pass val 声明不可变变量(l和直,所以不可变) val a = 1 a = 2 // error,a用val声明,不可修改,但是又不同于常量 ...
2022-03-01 23:23:08
1806
原创 linux zip(压缩) unzip(解压)文件夹
一个test文件夹,其中有两个文件,a.txt,b.txt 要求 操作步骤 压缩 将test文件夹压缩为test.zip 1 进入到test目录 2 执行 zip -q -r test.zip * 3 在test路径下输出test.zip 解压 解压test.zip输出到source文件夹 1 进入source(没有创建),将test.zip文件复制到其中 2 执行 unzip test.zip...
2022-02-25 23:16:02
1533
原创 beyond compare实现只比较特定关键字
1 打开beyong compare2 打开一个文件3 点击头部工具栏的Rules4 弹出对话框,选中对话框中的importance5 点击下面方框右侧的Edit Grammar6 弹出对话框,点击上面方框下的加号7 弹出对话框,根据提示输入规则名称和规则,比如输入名称hide,规则 .*@hide.*8 所有对话框点击ok9 回到第一个弹出的对话框,下面方框出现我们新增的hide规则,只选中这个规则,即可实现只比较存在@hide关键字的文件...
2022-02-22 23:52:22
1002
原创 Android CTS官方文档信息整理
官方文档分类路径: AOSP-设计-测试 Android 12 CTS变更 https://source.android.com/compatibility/cts/cts-release-notes?hl=zh-cn
2022-02-21 22:29:42
1138
原创 使用mac自带的g++编译c++ hello world程序
sublime,终端 步骤 1 使用sublime编写以上代码,保存文件为hello.cpp到xxx目录 2 打开终端到xxx目录 3.1 在终端输入g++ -o hello hello.cpp 3.2 换行 结果:3.1 终端无任何提示, 3.2 xxx目录下会生成一个hello的可执行文件 ...
2022-02-20 10:38:55
1219
原创 golang中:=是什么意思?
说明 声明并赋值,系统自动推断类型,不需要var关键字 四种等价形式 golang java d:=100 没有这种形式 var d // 声明 d=100 // 赋值 int d; d = 100 var d=100 没有这种形式 ...
2022-02-19 19:18:13
591
原创 golang函数定义
golang java 定义 func 函数名([参数列表]) [返回值] 函数访问修饰符 返回值 函数名([参数列表]) 举例 /* 函数返回两个数的最大值 */ func max(num1, num2 int) int { } /* 函数返回两个数的最大值 */ public int max(int num1, int num2){ } ...
2022-02-18 23:23:34
395
原创 对golang语言var的理解
定义 var是一个关键字,用来声明变量 形式 var name type (var 变量名 变量类型) 举例 声明指针类型 var a,b *int
2022-02-17 23:12:52
1513
原创 配置NDK环境
1 打开文件 open -e .bash_profile 2 输入export NDK_ROOT=/Users/apple/Documents/androidsdk/sdk/ndk-bundleexport PATH=$PATH:$NDK_ROOT3 保存 4 更新 source .bash_profile
2017-11-07 11:40:12
573
转载 android发彩信
/** * 发彩信 */private void sendSMS(String url){ Intent intent = new Intent(Intent.ACTION_SEND); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //uri为你的附件的uri,ex:file://sdcard//tmpPhoto.jp
2017-10-07 14:52:00
910
转载 Android获取Manifest中<meta-data>元素的值
android 开发中: 在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>、<application> 、<service>``<receiver>元素中,不同的父元素,在应用时读取的方法也不同。1 :在Activity应用元素。 xml代码段:<activity...> <meta-data android:name=
2017-09-06 09:33:45
407
原创 自定义跟随手指移动view
public class MoveView extends AppCompatButton { int mLastX; int mLastY; public MoveView(Context context) { super(context); } public MoveView(Context context, @Nullable Attri
2017-08-31 15:20:18
383
原创 使用反射生成jdk动态代理
1 代理类实现了接口?执行代理类的每个方法都会被替换执行InvocationHandler对象的invoke方法//obj是你自己实例化的对象在invoke中调用 Object object = method.invoke(obj,args);其实还是你自己实现了接口2 每个代理对象关联一个InvocationHandler//接口public interface Dog { vo
2017-08-29 18:57:55
354
原创 泛型与Class类
1 使用Class<T>泛型可以避免强制类型转换2 String.class的类型实际上是Class<String>3 如果Class对应的类暂时未知,就用Class<?>//不用泛型的demopublic class ObjectFactory { public static Object getInstance(String name){ try {
2017-08-29 16:46:46
1135
1
原创 使用反射来获取泛型信息
//涉及api//获取类对应的Class对象1 Class cls = Object.class;//获取类的成员变量2 Field flild = cls.getDeclaredField("");//获取成员变量的数据类型(普通)3 Class<?> type = field.getType();////获取成员变量的数据类型(泛型)4 Type gType = field.ge
2017-08-29 15:58:14
2184
原创 设计模式之禅-代理模式2
定义:自己写代理类的方式就是静态代理 承接上篇文章 类图中多了InvicationHandler,GamePlayerIH 作用是产生一个对象的代理对象/** * 动态代理类 * 原理不清楚 */public class DynamicProxy implements InvocationHandler{ //被代理者 private Class cls; //
2017-08-26 15:02:42
224
原创 代理模式小例子1
代理模式定义:为其他对象提供一种代理,以控制对这个对象的访问 代理模式ex: 以上为该文章例子的简单代理模式的类图 接口:IGamePlayer 实现类:GamePlayer 实现类的代理类:GamePlayerProxy 实现类和代理类实现相同的接口/** * 打游戏的接口 */public interface IGamePlayer { //登录 public
2017-08-26 11:17:39
417
原创 CoordinatorLayout
控件 子view必须设置 CoordinatorLayout layout_behavior layout_anchor layout_anchorGravity 控件 自view必须设置 必须 CollapsingToolBarLayout layout_collapseMode 它需要是 AppBarLayout 的直接子 View 控件
2017-08-22 18:05:57
106
原创 button跟随手指移动
public class TextActivity3 extends Activity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layou
2017-08-22 11:30:36
487
原创 在代码中设置margin
public class MarginActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont
2017-08-21 09:54:51
2413
原创 android 屏幕属性
public class CoordinateUtils { /** * 状态栏+title+view * @param context * @return */ public static DisplayMetrics getScreenWH(Activity context){ DisplayMetrics metrics
2017-08-21 09:53:47
284
原创 Dialog
从底部弹出对话框public class TestDialog extends Dialog{ private Activity context; public TestDialog(Activity context) { super(context); this.context = context; } public TestDialo
2017-08-17 20:16:29
129
原创 ShareSdk学习总结
oneKeyShare方便但是ui太过于死板,不利于扩展,所以还是自己来调用api 以朋友圈为例:public void Momments() { //1 获取设置参数实例 Platform.ShareParams sp = new Platform.ShareParams(); //2 设置参数 sp.setTitle(news.title
2017-08-17 17:29:26
206
原创 Retrofit+mvp简单实例
v:就一个简单的接口,给activity提供数据,activity实现这个接口就可以 所以数据回调都可以用这一个接口public interface ViewData<T> { void showProgress(); void hideProgress(); void loadData(T data);}m : 数据真正来源,提供数据给p p需要传递接口过来拿数据,在
2017-07-07 10:02:14
246
原创 Retrofit简单封装
参考博客 简单实用步骤 1 ApiService,所有需要的接口public interface ApiService { @GET("top250") Call<MovieResponse> getMovices(@Query("start") int start, @Query("count") int count);}2 ApiManager,用来简单的封装Retrofi
2017-07-07 08:41:37
104
原创 对android回调的理解(一)
接口I就是a类去b类中拿想要的东西,接口I就是a类的实例代表 a 实现这个接口I,b接收a传递过来的接口实例,在获取数据的地方调用接口的方法即可public class Person{ //一个函数,我把他想象成是接口的实现 public void setName(String name){ Log.d(&quot;log&quot;,name); }}//调用函数,将“老王
2017-06-27 08:54:21
1271
原创 简单的android网络请求
请求数据来源: https://api.douban.com/v2/movie/top250 params: start,count OK+AsyncTask//对ok的简单设置public class MyOkhttp { public static OkHttpClient client = new OkHttpClient(); public static Str
2017-05-31 08:56:54
1213
转载 GsonUtils
public class GsonUtil { private static Gson gson = null; static { if (gson == null) { gson = new Gson(); } } private GsonUtil() { } /** * 转成json
2017-05-28 20:32:35
646
原创 android studio的一些问题
1 Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor version 52.0问题:preview显示不出来 解决链接2 This app has been built with an incorrect configuration. Please configur
2017-05-28 20:07:12
252
原创 项目中ListView使用分析
1 我不喜欢用implements 的方式来写代码2 各种方式的区别总结3 看LoadMoreListView源码public class HomeSubjectListUI extends BaseFragmentActivity implements AdapterView.OnItemClickListener, NetRequestUtils.RequestListener, Load
2017-05-27 10:07:27
208
原创 Java中普通代码块,构造代码块,静态代码块区别及代码示例
java代码块1 普通代码块普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定“先出现先执行”2 构造代码块直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。3 静态代码块在java中使用static关键字声明的代码
2017-05-23 19:04:04
152
原创 Retrolambda使用介绍
gralde配置在 build.gradle(Project)中加上下列内容buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.5' } } // Required because retro
2017-04-19 14:53:27
912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人