Android 零碎知识点整理
2016-03-23 17:52
477 查看
以下是平时懒散的零碎记录,以后再往上加
1、如何将scrollview自动调节始终滑动到最底部
scrollTo方法可以调整view的显示位置。在需要的地方调用以下方法即可。scroll表示外层的view,inner表示内层的view,其余内容都在inner里。注意,方法中开一个新线程是必要的。否则在数据更新导致换行时getMeasuredHeight方法并不是最新的高度。
public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
@Override
public void run() {
int offset = inner.getMeasuredHeight() - scroll.getHeight();
if (offset < 0) {
offset = 0;
}
scroll.scrollTo(0, offset);
}
});
}
2、在java中,如何四舍五入保留小数点x位?
方法一:float temp = 0.6922224f;
BigDecimal bd = new BigDecimal(temp);
bd =bd.round(new MathContext(2));
结果:
System.out.println("bd:"+bd); bd = 0.69
方法二:
String parten = "#.#";
DecimalFormat decimal = new DecimalFormat(parten);
String str= decimal.format(temp);
interval = Float.valueOf(str);
结果:
System.out.println(interval); interval = 0.7
显然这种方法关键的就是parten参数, #.##就是保留两位小数点并且四舍五入,这种方法返回的是字符串类型。
3、android数据库的管理
首先可以使用原始SQL语句,也可以使用andorid提供的方法,但是还可以使用方便操作数据库的框架LitePal,关于LitePal详细的讲解可以参考郭霖博客专家的博客。讲解很细致入微。
博客地址:http://blog.csdn.net/guolin_blog/article/details/40614197
LitePal下载地址:https://github.com/LitePalFramework/LitePal
4、intentservice和service最大的区别
Service是用于后台服务的,当应用程序被挂到后台的时候,保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说,在更多时候不建议在Service中编写耗时的逻辑和操作,否则会引起ANR。
那么我们当我们编写的耗时逻辑,不得不被service来管理的时候,就需要引入IntentService,IntentService是继承Service的,那么它包含了Service的全部特性,当然也包含service的生命周期,那么与service不同的是,IntentService在执行onCreate操作的时候,内部开了一个线程,去你执行你的耗时操作。
5、将工程作为libaray给其他工程调用,并且activity之间进行通信
情景分析: 比如要将工程A 作为library提供给B工程使用,并且在B工程中要打开A的activity,在A的activity完成任务后返回相应的数据到B,步骤为以下:
1、将A设置成library
在属性里面把islibrary勾选上,注意此时设置成library以后要clean以下,否则粗心可能导致R文件还是未设置成library之前生成的R文件,这样会导致被 B引用的 时合并后的R文件特别混乱,运行时乱套甚至崩溃。在A设置library以后,可能会出现报错,原因是switch语句中的case :R.id.xx报错,因为这个时候R文件的id属性不在有 final这个关键字修饰,这个时候需要把工程里的所有switch代码完全改成if-if
else语句。
2、在B工程中引用library
在B工程的属性设置里面引用设置为libray的A,注意在当前工程的gen目录下会有A的R资源Aid,引用了A,则A的相关资源资源会合并到B中,但A的AndroidMainFest.xml中的配置应该复制到B中
3、B中引用A的activity
启动方式可以使用显示意图,即像我们平时那样子调用staractivity(intent);就行了
4、library A中的activity处理任务后返回数据就不能像平时那样setreult();就行了,这样会无法返回,因为A中没有B的资源和累,此时得使用隐身意图返回B,也可以用此种方法返回绑定的数据,具体什么是隐式意图,网上资料很多。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories