1.如果你要自己写finish(); 那可以去除super.onbackPressed()。
2.如果只是写其他代码,把代码放在super.onbackPressed()前面。
因为如果super是默认处理方法 如果没有这句话,返回键无效,如果放前面了就只有执行返回功能,而你写的代码却不执行了。
二.Button按钮text默认是全部大写,可以通过设置设置以下属性改变
android:textAllCaps="false"
三. ntent的putExtra和bundle的区别 putExtra()的源码如下:
public Intent putExtra(String name, String value) { if (mExtras == null) { mExtras = new Bundle(); } mExtras.putString(name, value); return this; } 所以其实两者是没有区别的,putExtra一个个传和new Bundle其实是一样的。
四,读取手机联系人信息时的selection selectionArgs
比如要读取名为"tom"的联系人,一开始我以为selection应该这样写:
“ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME = ?” 然后new String[]{"tom"};
然后发现怎么都找不到
后来想了想ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME并不是实际存在数据库的常量值,
所以selection写法是 ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+“ = ?” 然后selectionArg跟上面一致
五.BitmapFactory.decodeStrem() 接收图片的时候报错。
之前在做一个图片下载器,参考网上许多资料都是用okhttp获得图片信息后:
InputStream in=response.body().byteStream(); Bitmap bitmap=BitmapFactory.decodeStream(in); 都是这样的做法,但是就是运行失败,显示不出来图片。看了信息是抛出异常了,而且在Bitmap那句话出错,后来又百度了下原因,各种说法都有。
具体解决方法:
byte[] a =response.body().bytes(); Bitmap bitmap= BitmapFactory.decodeByteArray(a,0,a.length); 不用InputStream 采用byte[]方法就完全可以。
注:貌似不能重复调用body(),我之前用log打印出body()的信息然后再转换bitmap就报错,删除log就没问题,所以遇到的要注意下。
response.body()