android开发中最常用的控件之一就是listview,伴随listview还要有adapter和放入适配器的item.然后假设其中有一部分item的生成符合一定规律,Item item = new Item(jsonObject);那么就该考虑下用反射来生成这些元素了. 首先是item的代码 public class TestItem { public int id; public String image; public TestItem(JSONObject json) { try {…
ListView作为Android开发中使用频率最高的一个控件,保证ListView的流畅运行,对用户体验的提高至关重要.Adapter是ListView和数据源之间的中间人,当每条数据进入可见区时,Adapter 的 getView() 会被调用,返回代表具体数据的视图,在成百上千条数据触摸滚动时频繁调用,因此如何优化Adapter是提高ListView性能的关键. 1. 使用ViewHolder模式,重复利用convertView,减少频繁查找 在2009年 Google IO开发者大会中已…
0.  前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment大量保存Activity销毁重建数据的方法,但是有一个问题是,在异步任务时旋转屏幕,如何处理异步任务呢?如果单纯的在Activity销毁之前关闭上一个异步任务,onPostExecute()中的关闭对话框就不会走了,会出现对话框无法关闭的现象:如果不关闭,可能会更新已经不存在的控件,造成错误,不仅如…
通常开发Android的时候要使用到数据库操作,会遇到下面小问题: 数据库文件在哪?怎样訪问或操作? 能够通过:打开DDMS->File Explorer看到的sqlite数据库在eclipse,然后在文件夹/data/data/package_name/databases下找到. 可是我们仅仅能看到.db文件,根本看不到里面的表格数据,更别说操作数据啦. 当然,我们能够把.db文件导出来,用数据库操作工具(如SQLite Expert)来操作数据,这是不是非常麻烦呀,今天我们就能够用一个简单的…
最近在使用AIDL做IPC的时候,在处理复杂的数据类型的时候,编译器总是报couldn't find import for class错误,所以在这里总结下AIDL使用的时候的一些注意事项,希望对你能有所帮助. Android 中进程间通信使用了 AIDL 语言,但是支持的数据类型有限: 1.Java的简单类型(int.char.boolean等).不需要导入(import). 2.String和CharSequence.不需要导入(import). 3.List和Map.但要注意,List和M…
在AlertDialog中使用自定义的View,如果View中有EditText,在上面点击,默认是跳不出软键盘的,不是焦点的问题.解决方法,有两种,一是把AlertDialog换成Dialog,但这么一来,对话框的最外层会多出一个框,顶部还会空几十个DP,当然可以用setBackgroundDrawable(new ColorDrawable(0))把背景设为透明,隐藏掉边框,但是上面空着的几十个DP还在,对话框就不是在屏幕居中了.代码: Dialog ad = new Dialog(cont…
当我们学完java中多线程的下载后,可以将它移植到我们的安卓中来,下面是具体实现源码: DownActivity.java package com.example.downloads; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.MalformedURLException; i…
需求场景: 在开发中遇到下面这样场景: 1.创建 Fragment A 显示.  这时栈的结构是: .Fragment A 2.创建 Fragment B 并 显示.  从下到上看,这时栈的结构是: 2.Fragment B 1.Fragment A 3.创建 Fragment C 并 显示.  从下到上看,这时栈的结构是: 3.Fragment C 2.Fragment B 1.Fragment A 那么,如何从 Fragment C 一次性跳到 Fragment A 呢? 实现: 入栈时,使…
android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问 "properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table inthe checkin database, to change values that get uploaded) android.permission.ACCESS_COARSE_LOC…
前言 在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 /** * 获取视频缩略图 * @param vedioFile * @return */ public static Bitmap getVedioThumbnail(File vedioFile){ if (!vedioFile.exists()){ L.e("视频文件不存在"); return n…