读书人

android适配2.3遇到的有关问题(1)

发布时间: 2013-10-21 17:03:30 作者: rapoo

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

?

读书人网 >Android

热点推荐