标签:split can cto image 关注 ges ddr asc guard
作为一名Android世界的搬运工,每天搬砖已经够苦够累了,走在坑坑洼洼的道路一不小心就掉坑里了。
Android SDK中本身就拥有很多轮子,熟悉这些轮子,可以提高我们的搬砖效率。
android.text.TextUtils
字符串操作常用方法:isEmpty() ,join(),split()等
if(!TextUtils.isEmpty(text)){ //do something }
android.webkit.URLUtil
链接相关常用方法:isHttpUrl(),isNetworkUrl(),decode()等
android.util.Patterns 或 android.support.v4.util.PatternsCompat
该类定义了许多常用正则表达式常量,可直接拿来用,例如:IP地址IP_ADDRESS,网址WEB_URL,Email地址EMAIL_ADDRESS,电话PHONE。
有了它,妈妈再也不用担心我正则表达式的问题了。
Matcher urlMatcher = Patterns.WEB_URL.matcher(text); if (urlMatcher.find()) { //find url }
android.telephony.PhoneNumberUtils
电话相关工具类
android.text.format.Formatter
格式化文件大小,以GB,MB,KB为单位。
android.media.ThumbnailUtils
创建图片或视频缩略图
常用方法:createImageThumbnail(),createVideoThumbnail()
android.database.DatabaseUtils
数据库操作相关工具类
?
以下经验是AC在开车时的出现事故的小笔记。其中的解决方案,由于飚车环境差异和AC本人的能力有限,各位老司机可以酌情参考,同时也欢迎老司机评论指出。
Handler处理异步操作时 用isFinishing()
判断当前的Activity是否存在: 比如在联网请求数据回调回来之后,在Handler的handleMessage()
方法中,用
isFinishing()
判断当前的Activity是否存在,否则极易出现空指针等异常。
在ListFragment中set footer,不要在onCreateView()
中设置; 要在onActivityCreate()
中设置 否则会Caused by: java.lang.IllegalStateException: Content view not yet created
。
如果页面中的的样式如果出现了很奇怪的渲染(花屏,闪烁等异常),看看所在的Activity或者View是否添加了硬件加速。
setCustomAnimations方法要在replace,remove等方法之前,否则设置无效。
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.push_up_out, 0); ft.replace(R.id.frame_content,mFragment);
在onCreate中获取到View的高度和宽度,直接调用View.getHeight()
或View.getWidth()
,均得到0。应该使用以下方式获取View的高度或宽度。
mView.post(()->{ Log.d("width:"+mView.getWidth()+",height:"+mView.getWidth()); });
ActivityA通过startActivityForResult()
启动了ActivityB。如果ActivityB的launchMode是singleTop或singleTask就要注意了,ActivityA的onActivityResult(int requestCode,int resultCode,Intent data)
方法中的resultCode一定是Activity.RESULT_CANCELED。
在startActivity
的时候闪退并出现了以下log:
注意:不要在intent中传递大量的数据数据(例如List,大的图片等),否则会抛异常。
drawable 中的selector文件 如果使用android:exitFadeDuration="@android:integer/config_shortAnimTime"
这个属性,那么不同的手机可能会有不同的效果,慎用!!
在实现WebView与JS交互的过程中,如果遇到点击后JS方法无响应,应该注意一下问题:(1)WebView.addJavascriptInterface(new AndroidClick(), "android");这个方法的别名android是否与JS中的对象名称一致如 (2)WebView需要实现注册这个回调函数。
WebView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); } });
(3)如果发布的APP有进行混淆,那么AndroidClick这个JS 与 JAVA交互的类需要proguard.cfg文件忽略这个类的混淆,否则混淆后JS将执行不了。
keepclassmembers class net.angrycode.js2java.AndroidClick{ *; }
TextView实现简单的图文,可以使用TextView的drawableTop等属性来设置文本上的图片;还可以配合ImageSpan使用来设置图片。
AlertDialog 按确定按钮不消失的方法
AlertDialog dialog = builder.create(); dialog.setCanceledOnTouchOutside(true); dialog.show(); dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { String text = editText.getText().toString().trim(); if (TextUtils.isEmpty(text)){ ToastUtils.showToast(this,R.string.say_something); return; } //这里执行对话框消失 dialog.dismiss(); });
微信关注我们,可以获取更多
标签:split can cto image 关注 ges ddr asc guard
原文地址:http://www.cnblogs.com/angrycode/p/5985614.html