android 日常迭代与维护总结二

来源:互联网 发布:rhino wip mac 下载 编辑:程序博客网 时间:2024/05/16 19:22

android 迭代开发中陆续遇到各种问题,我们要善于总结,归类。现在记录一下这几个月遇到的问题汇总。

1、android fragment中onActivityResult方法返回没有数据

返回数据,可能Intent data有数据或者是int requestCode这个参数返回码有错误。

解决办法:
在activity中需要加上super.onActivityResult(requestCode, resultCode, data);

@Overrideprotected 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); 

1 0