1.如果你要自己写finish(); 那可以去除super.onbackPressed()。
2.如果只是写其他代码,把代码放在super.onbackPressed()前面。
因为如果super是默认处理方法 如果没有这句话,返回键无效,如果放前面了就只有执行返回功能,而你写的代码却不执行了。
二.Button按钮text默认是全部大写,可以通过设置设置以下属性改变
android:textAllCaps="false"
三. Intent的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.decodeStre
都是这样的做法,但是就是运行失败,显示不出来图片。看了信息是抛出异常了,而且在Bitmap那句话出错,后来又百度了下原因,各种说法都有。
具体解决方法:
InputStream in=response.body().byteStream();
Bitmap bitmap=BitmapFactory.decodeStre
不用InputStream 采用byte[]方法就完全可以。
注:貌似不能重复调用body(),我之前用log打印出body()的信息然后再转换bitmap就报错,删除log就没问题,所以遇到的要注意下。
response.body()
六.onCreatOptionsMenu方法中返回值的意思
true:表示允许创建的菜单显示出来。
false:创建的菜单无法显示。
七.隐式intent如果只靠action的话 必须在category指名为“android.intent.category.DEFAULT"
private Book(Parcel in) {
bookName=in.readString();
author=in.readString();
publishDate=in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(bookName);
dest.writeString(author);
dest.writeInt(publishDate);
}