Layout里的文件名小写
mHolder.addCallback(this)------->里的this是由于本类 implents 了 SurfaceHolder.Callback,所以参数类型符合addCallback(SurfaceHolder.Callback callback)
android 模拟器能使用电脑的摄像头,选择webcam0,Camera.open(0),这里open要是默认没参数的话,会报错。
super(context) 大概是要先初始化当前类的上下文环境
FrameLayout:后一个子元素将会直接在前 一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。
使用camera时 manifest文件需添加:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Android SimpleAdapter数据删除后界面更新,只需要加入代码(缺一不可):
data.remove(position);
simple.notifyDataSetChanged();
ContentProvider: 对外共享数据的好处是统一了数据的访问方式
Uri代表了要操作的数据,Uri主要包含了两部分信息:1》需要操作的ContentProvider ,2》对ContentProvider中的什么数据进行操作,一个Uri由以下几部分组成:
content必须小写
ContentProvider(内容提供者)的scheme已经由Android所规定, scheme为:content://
主机名(或叫Authority)用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。
路径(path)可以用来表示我们要操作的数据,路径的构建应根据业务而定,如下:
要操作person表中id为10的记录,可以构建这样的路径:/person/10
要操作person表中id为10的记录的name字段, person/10/name
要操作person表中的所有记录,可以构建这样的路径:/person
要操作xxx表中的记录,可以构建这样的路径:/xxx
当然要操作的数据不一定来自数据库,也可以是文件、xml或网络等其他存储方式,如下:
要操作xml文件中person节点下的name节点,可以构建这样的路径:/person/name
如果要把一个字符串转换成Uri,可以使用Uri类中的parse()方法,如下:
Uri uri = Uri.parse("content://com.ljq.provider.personprovider/person")
CursorLoader advantage:
- The query is handled on a background thread for you (courtesy of being build on
AsyncTaskLoader
) so large data queries do not block the UI. This is something the docs recommended you do for yourself when using a plainCursor
, but now it's done under the hood. -
CursorLoader
is auto-updating. In addition to performing the initial query, theCursorLoader
registers aContentObserver
with the dataset you requested and callsforceLoad()
on itself when the data set changes. This results in you getting async callbacks anytime the data changes in order to update the view.
DBHelper 只在第一次创建数据库是调用,以后就不会调用了
ecplise删除数据库: 在eclipse界面的右上角,点击,选择DDMS,选择file explore , 选择data,再选data,可以看到相关的应用,然后可以看到数据库了。
setOnItemSelectedListener、setOnItemClickListener与setOnTouchlistener的区别 : http://blog.youkuaiyun.com/bcai2/article/details/15028979
android ViewPager滑动事件讲 : http://my.oschina.net/u/1429620/blog/191159
export JRE_HOME=/usr/lib/jdk1.8.0/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib