android适配2.3遇到的问题(1)
ActionBar actionBar = getSupportActionBar();
?由此,在适配兼容性的时候遇到了如下一些问题:
?
1.PreferenceActivity无法使用v7.app.ActionBar
? ? ? 没什么好办法,只能自己实现一个关于设置的activity
?
2,setShowAsAction方法存在兼容性问题
? ? ? 3.0以上版本想在actionbar中加一个按钮可以这样写:
menu.add(0, MENU_GET_PHOTO, 0, getString(R.string.upload_pic)).setIcon(R.drawable.ic_control_camera). setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
? ? ?而2.3中,MenuItem没有setShowAsAction方法,需要这样写:
MenuItem send = menu.add(0, MENU_POST_PHOTO, 0, getString(R.string.post_photo));send.setIcon(R.drawable.ic_send);MenuItemCompat.setShowAsAction(send, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
?
3.invalidateOptionsMenu方法存在兼容性问题
? ? 在2.3版本中,如果想去掉一个activity中的actionBar中的按钮需要这样写:
?
getActivity().supportInvalidateOptionsMenu();
?
二 遇到的其他适配问题
?
1.GridView的getColumnWidth方法问题
? ? 2.3中没有取得GridView的一个成员的宽度的方法,而在我的项目中,需要让这个成员的长宽一样,所以4.3中的代码是这样的:
?
mThumbPhotoAdapter.setItemHeight(mGridView.getColumnWidth());
? ? ?而2.3中需要这样写:
?
mThumbPhotoAdapter.setItemHeight((mGridView.getWidth() - (THUMB_ITEM_COUNT - 1) * mGridView.getListPaddingLeft()) / THUMB_ITEM_COUNT);
?数字游戏
?
2.给ListView加HeaderView时遇到的问题
? ? 在2.3中,在给listView加HeaderView时,adapter必须为空,因此必须在setAdapter之前执行addHeaderView方法,否则会出现以下异常
java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.? ? 而在3.0以上版本则不需要?3.Bitmap的getByteCount方法? ? 在2.3中需要把这个方法替换成:bitmap.getRowBytes() * bitmap.getHeight()?数字游戏+1
?