android 迭代开发中陆续遇到各种问题,我们要善于总结,归类。现在记录一下这几个月遇到的问题汇总。
1、android fragment中onActivityResult方法返回没有数据
返回数据,可能Intent data有数据或者是int requestCode这个参数返回码有错误。
解决办法:
在activity中需要加上super.onActivityResult(requestCode, resultCode, data);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data == null) return; // 页面返回值 if (100 == requestCode) { } }
在fragment中启动是这样的。
getActivity().startActivityForResult(newIntent,100);
需要前面加上getActivity()。
2、android listview的滚动顶部或者底部
a、public void setSelection (int position)
position位置的item置顶(即position位置的item到listview的最顶端),但是,没有从原来位置到顶端的滑动效果。
listview.setSelection(0);滚动到顶部。
b、public void setSelectionFromTop (int position, int y)
与setSelection 类似。setSelection(position)就是setSelectionFromTop (position,0)
选中position指定的项目,并将所选项置于距离ListView顶端y像素的位置
参数 position 需要选中的项目的索引(从0开始) y 距离ListView(包括间隙)顶端的位置
c、public void smoothScrollToPositionFromTop (int position, int offset)
平滑滚动到指定的适配器位置。 指定位置的视图会滚动到相对顶边偏移 offset 像素的位置显示。
如果无法做到(比如该偏移量会使首尾条目超越列表边缘),会滚动到尽量接近的位置。
参数
position 滚动到的位置offset 滚动结束时,指定 position 条目距离视图顶部的像素数
当offset=0时,可以把position位置的item置顶,而且带有滑动效果,即会从原来位置轻轻滑动到最顶端位置。
d、listview的滚动顶部或者底部
listview滚动到底部listview.setSelection(listview .getCount()-1);
listview滚动到顶部listview .setSelection(0);
或者 listView.setSelectionAfterHeaderView();
或者 list.smoothScrollToPosition(0);
这些需要在setAdapter方法和notifyDataSetChanged方法之后调用。
3、64位编码生成
<span style="font-size:14px;">strBasic = Base64.encodeToString(strBasic.getBytes(),Base64.DEFAULT);</span>
4、eclipse去除所有调试断点
调试的时候发现之前加了太多断点,想去除所有断点,才想起来一直都没有使用过这个功能,放狗搜了一下,很快找到,记录一下。
方法一:
在工作界面,点window菜单栏,选中Preperences,在General选项卡中的key节点下,
找到快捷键输入栏,在type filter text中输入remove,下面自能提示中就会出现Remove all breakpoints,我们要找的撤销功能键就是它了。
然后根据自己的需求改成自己想要的热键吧。
方法二:
在debug模式窗口中,点run菜单栏,在下拉的选项卡中,在底部我们可以看见Remove all breakpoints的选项,
只要我点击它,就会把我们当前调试的项目中的所有断点撤销。
5、android actionbar自定义标题栏
LayoutParams mLayoutParams = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,Gravity.LEFT|Gravity.CENTER_VERTICAL); getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); View customView = getLayoutInflater().inflate(R.layout.custom_title_setting, null); TextView titleTextView = (TextView)customView.findViewById(R.id.textViewTitle); titleTextView.setText(strTitle); getActionBar().setCustomView(customView,mLayoutParams); getActionBar().setDisplayShowCustomEnabled(true);
6、android actionbar左上角logo显示问题
默认情况下,系统会在<application>或者<activity>标签中通过android:icon属性把你应用的图标显示在action bar上,可是,我们也可以通过android:logo属性来指定其他的图标进行显示。如果你不想一些activity显示logo,在<activity>标签注册时候android:logo属性的图标引用透明一张小图片即可。
//去掉app图标显示 getActionBar().setDisplayShowHomeEnabled(false); actionbarsherlock框架标题栏显示返回图标 // 添加返回按钮 getActionBar().setDisplayHomeAsUpEnabled(true);
如果用了 ViewPager+Fragment滑动选项卡。你会发现标题栏与tab选项栏谁在顶部的问题。
是通过下面这行代码来控制的。你想达到什么效果,可根据我说的显示logo问题。
getActionBar().setDisplayShowHomeEnabled(false);