- 浏览: 15850 次
最新评论
//本文中代码基本上是Mars老师的代码...--#
1、SQLite基本用法
参考:http://my.oschina.net/cathleencheng/blog/17682
··SQLite是一种轻量级的数据库,时常用于嵌入式开发。
··对于数据库的基本操作有:
1)创建数据库。包括创建表,记录,字段等。
2)打开,关闭数据库。
3)向数据库中插入数据。
4)删除数据库中某些数据。
5)在数据库中查找相应的数据。
··对数据库操作的一般流程:
1)写一个类继承SQLiteOpenHelper类,该类是对数据库创建和打开的帮助类,在该类中必须有构造函数,可以 在该类中重写onCreate()等方法,在数据库创建或更新等操作时被系统回调执行相应代码。
public class DatabaseHelper extends SQLiteOpenHelper { private static final int VERSION = 1; //在SQLiteOepnHelper的子类当中,必须有该构造函数 public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { //必须通过super调用父类当中的构造函数 super(context, name, factory, version); // TODO Auto-generated constructor stub } //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法 @Override public void onCreate(SQLiteDatabase db) { //execSQL函数用于执行SQL语句 db.execSQL("create table user(id int,name varchar(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //... ...在数据库更新时执行的代码 } }
2)创建上述类对象,再用其中继承下来的getReadableDatabase()和getWritableDatabase()函数返回 一个SQLiteDatabase数据库类型。
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db"); //只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,才会创建,或打开一个数据库 SQLiteDatabase db = dbHelper.getReadableDatabase();
3)插入数据。
ContentValues values = new ContentValues();//该对象可放入键和值。 //想该对象当中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须和数据库当中的数据类型一致 values.put("id", 1); values.put("name","zhangsan"); DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2); SQLiteDatabase db = dbHelper.getWritableDatabase(); //调用insert方法,就可以将数据插入到数据库当中 db.insert("user", null, values);//第一个参数是表名
4)查找数据。
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db"); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);//第一个数表名, while(cursor.moveToNext()){//Cursor对象游走在匹配数据上,当移动到末尾时返回false String name = cursor.getString(cursor.getColumnIndex("name")); System.out.println("query--->" + name); } /* public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) Since: API Level 1 Query the given table, returning a Cursor over the result set. Parameters table The table name to compile the query against. columns A list of which columns to return. Passing null will return all columns, which is discouraged to prevent reading data from storage that isn't going to be used. selection A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given table. selectionArgs You may include ?s in selection, which will be replaced by the values from selectionArgs, in order that they appear in the selection. The values will be bound as Strings. groupBy A filter declaring how to group rows, formatted as an SQL GROUP BY clause (excluding the GROUP BY itself). Passing null will cause the rows to not be grouped. having A filter declare which row groups to include in the cursor, if row grouping is being used, formatted as an SQL HAVING clause (excluding the HAVING itself). Passing null will cause all row groups to be included, and is required when row grouping is not being used. orderBy How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered */
5)其他操作不是很清楚,等编写具体程序的时候再仔细研究一番...--#
2、Broadcast广播机制。
··Broadcast机制可以想所有程序发送一个广播,某些程序可以接收这些广播进行相应的处理。广播可以由我们自己定义发出,也可以是系统固有的广播。
··如何发出广播。广播的发出和调用另一个Activity很像,都是借助Intent类实现的。
Intent intent = new Intent();//创建一个Intent对象 intent.setAction(Intent.ACTION_EDIT);//为该Intent对象设置动作,实际上用于接收时的过滤 TestActivity.this.sendBroadcast(intent);//广播该Intent对象
··如何接收广播。接收广播分为两种。
1)在AndroidMainifest中注册,类似于Activity的注册。用该方法实现接收广播即使该程序关闭,同样也会 收到广播消息。
//Java文件,继承了BroadcastReceiver类实现广播的接收,每次程序收到正确的广播,就会创建该类的一个对象。 public class TestReceiver extends BroadcastReceiver{ //覆写其中的onReceive()函数。该函数在收到广播时被回调。 @Override public void onReceive(Context context, Intent intent) { System.out.println("onReceive"); } }
<!--AndroidManifest中注册该接收器,并声明需要的action。-->
<receiver android:name=".TestReceiver"> <intent-filter> <action android:name="android.intent.action.PICK" /> </intent-filter> </receiver>
2)在程序中创建一个类继承BroadcastReceiver类,并在程序代码中动态注册该类对象和取消该类对象,用 法灵活方便。
public class SMSReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //覆写onReceive()方法,表明收到广播时需要做什么 } }
smsReceiver = new SMSReceiver(); //生成一个IntentFilter对象,该对象为接收器绑定过滤器。 IntentFilter filter = new IntentFilter(); //为IntentFilter添加一个Action filter.addAction(SMS_ACTION); //将BroadcastReceiver对象注册到系统当中 TestBC2Activity.this.registerReceiver(smsReceiver, filter); //TestBC2Activity.this.unregisterReceiver(smsReceiver);//取消注册
3、WiFi基础
对于WiFi网卡的操作,Android中用WifiManager类对其封装,只需要调用类对象相应函数以及查看帮助文档明白其中各常量意义即可。
wifiManager = (WifiManager)WifiActivity.this.getSystemService(Context.WIFI_SERVICE);//创建WifiManager对象 wifiManager.setWifiEnabled(true);//打开Wifi System.out.println("wifi state --->" + wifiManager.getWifiState());//查看Wifi状态。
恩,个人觉得Mars老师的教程真心不错,顶一个...--#
发表评论
-
SurfaceView的使用
2012-09-07 18:51 866SurfaceView的使用 先贴上几个地址: ht ... -
传感器的应用开发
2012-09-07 14:55 625传感器的应用开发 先贴几个地址 http://www ... -
Android笔记——NewDay1 AppWidget的一个更新小问题
2012-08-20 19:17 807之前在写一个AppWidget,需要根据按键显示不同的内容,其 ... -
Android笔记——Day10 *popUpWindow基本使用 *Notification基本使用
2012-07-20 07:40 928前十天去了北京,今天 ... -
Android笔记——Day9 *Android异步操作 *Http操作基础 *ListView使用方法
2012-07-07 18:34 10661、Android异步操作 ··之前说过用Threa ... -
Android笔记——Day8 *Animation的使用 *实现用户定位
2012-07-07 00:21 810反正每天看看Mars老师视频,完了自己在总结一下,感觉挺好的- ... -
Android笔记——Day7 *AppWidget的使用初步 *Android文本输入输出时的中文编码问题
2012-07-05 02:31 9021、AppWidget的使用初步 先贴个地址,这个地址里面 ... -
Android笔记——Day6 *Service初步 *利用序列化在Activity之间交换数据
2012-07-03 18:12 898昨天貌似ITEYE用CSDN的号登不上去,博客没法写了,现在又 ... -
Android笔记——Day4 *Android对SD卡的操作
2012-06-29 23:03 1674前两天去苏州玩了,今天终于又可以学Android写博客了--# ... -
Android笔记——Day3 *异常处理 *Java中的io *匿名内部类
2012-06-27 10:03 10131、异常处理。 ··Java中含有异常处理机制。 ·· ... -
Android笔记——Day2 *Java中类的继承 *多线程Handler
2012-06-25 22:48 8731、Java中类的继承。 ··Java中类的继承所产生的访 ... -
Android笔记——Day1 *Activity生命周期 *Activiity切换效果
2012-06-24 22:37 10681、Android中Activity的生命周期。 http ...
相关推荐
Android源码——数据库SQLite.zip
安卓Android源码——轻量级sqliteorm框架.zip
安卓Android源码——安卓Android轻量级sqlite orm框架.rar
iOS基础——数据操作之Sqlite3、FMDB
Android源码——连接SQLite数据库源码.zip
安卓Android源码——数据库SQLite.zip
安卓Android源码——SqliteManager源码.zip
安卓Android源码——Inject增加sqlite3数据库映射注解(ORM).zip
安卓Android源码——连接SQLite数据库源码.zip
安卓Android源码——安卓Android轻量级sqlite orm框架.zip
Android源码——SqliteManager 源码.zip
Android源码——SQLite 增、删、查、改操作源码.zip
安卓Android源码——sqlite的一些基本操作,包括数据库创建、数据库版本升级、创建表、数据的增删改查.zip
安卓Android源码——sqlite的一些基本操作,包括数据库创建、数据库版本升级、创建表、数据的增删改查.rar
Android数据存储——SharedPrefences、File、Sqlite 类与activity实现
安卓Android源码——SQLite增、删、查、改操作源码.zip
android Sqlite 基本操作 包含基本增删改插操作
Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的...