a-n-d-r-o-i-d

本文档总结了Android开发中的一些实用技巧,包括布局管理、权限设置、数据适配器使用、ContentProvider详解、数据库操作及常见工具配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:

  1. 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 plain Cursor, but now it's done under the hood.
  2. CursorLoader is auto-updating. In addition to performing the initial query, the CursorLoaderregisters a ContentObserver with the dataset you requested and calls forceLoad() 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

########################################################################################################################
Linux + ecplise +android+ADT+NDK+CDT+OpenCVforAndroid
步骤:
1. java环境
    在/etc/profile里添加(看你jdk放哪里)
    export JAVA_HOME=/usr/lib/jdk1.8.0
    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
2.ecplise (android官网里的,在ecplise存放的位置解压,否则会出错)
3.android emulator(SDcard can't create,emulator can't delete 忘了解决办法)
    在bashrc或profile或environment里指明sdk/tools文件夹的path,然后用source 或重启----emulator
    在bashrc或profile或environment里指明sdk/platform-tools文件夹的path,然后用source 或重启----adb
4.NDK
    在bashrc或profile或environment里指明NDK文件夹的path,然后用source 或重启----ndk-build
     尝试ndk-build.显示can't。。。。。。。成功
     然后在ndk/samples/hello-jni里使用ndk-build生成lib使得android平台能用
    CDT就是下下来然后help/install software就好
5.opencvforandroid
     先在emulator install opencv manager:  adb install /home/wangd933/software/adt-bundle-linux-x86_64-20131030/OpenCV-2.4.8-android-sdk/apk/OpenCV_2.4.8_Manager_2.16_armv7a-neon.apk (看平台)
      然后看http://blog.youkuaiyun.com/sjz_iron/article/details/8614070
   
android ndk 安装: sudo gedit /etc/environment (添加NDK路径) ,source  /etc/environment (更新), 输入 ndk-build 出现”couldn't find“ 则OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值