一些杂乱的知识点(未整理)

    xiaoxiao2021-03-25  71

    一.重写onBackPressed() 函数的时候

    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()

    转载请注明原文地址: https://ju.6miu.com/read-35208.html

    最新回复(0)