`
QCheng5453
  • 浏览: 16567 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android笔记——Day5 *SQLite基本用法 *Broadcast广播机制 *WiFi基础

 
阅读更多

//本文中代码基本上是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老师的教程真心不错,顶一个...--#

 

 

 

 

分享到:
评论

相关推荐

    Android源码——数据库SQLite.zip

    总的来说,"Android源码——数据库SQLite.zip"的内容涵盖了SQLite在Android中的使用、数据库的创建与管理、SQL操作、事务处理、性能优化等方面的知识,对于深入理解Android应用的数据存储机制具有很高的学习价值。

    安卓Android源码——轻量级sqliteorm框架.zip

    【Android SQLite ORM框架详解】 SQLite是一个轻量级的、开源的、嵌入式的数据库系统,广泛应用于移动设备,尤其是Android平台。在Android应用开发中,SQLite ORM(对象关系映射)框架可以帮助开发者更加便捷地管理...

    安卓Android源码——安卓Android轻量级sqlite orm框架.rar

    总结来说,"安卓Android源码——安卓Android轻量级sqlite orm框架.rar"是一个关于如何在Android项目中高效、便捷地使用SQLite数据库的源码示例。通过学习和理解这个框架,开发者可以更好地掌握Android中的数据存储,...

    Android源码——SqliteManager 源码.zip

    这份"Android源码——SqliteManager 源码.zip"包含了一些关于SqliteManager的源代码分析以及可能的示例图片,帮助开发者深入理解其工作原理。 首先,我们来看一下SQLiteManager的基本架构。通常,它会包含以下几个...

    安卓笔记——安卓详细笔记汇总

    这份名为“安卓笔记——安卓详细笔记汇总”的资源,无疑是安卓开发者或者学习者的重要参考资料。以下将对这个压缩包中可能包含的知识点进行深入解析。 首先,Android系统是基于Linux内核的开源操作系统,广泛应用于...

    安卓Android源码——GpsTracker源码.zip

    5. **Google Maps API**: 如果应用显示地图,那么它可能使用了Google Maps Android API来展示定位点和轨迹。 6. **SQLite数据库**: 为了存储历史定位数据,应用可能会使用SQLite数据库,创建数据表来保存经纬度坐标...

    安卓Android源码——android相册系统(用Matrix实现).zip

    这个压缩包文件"安卓Android源码——android相册系统(用Matrix实现).zip"包含了一个使用Matrix类来实现的相册系统源码。Matrix是Android图形库中的一个关键类,它允许开发者对图像进行平移、旋转、缩放等变换操作。...

    安卓Android源码——数据库SQLite.zip

    【标题】"安卓Android源码——数据库SQLite.zip" 提供的内容主要聚焦于Android操作系统中用于数据存储的SQLite数据库。SQLite是一个轻量级的关系型数据库,它被广泛集成在移动设备和嵌入式系统中,包括Android。这个...

    安卓Android源码——安卓Android学习——数据存储.zip

    本资料包“安卓Android源码——安卓Android学习——数据存储.zip”(实际应为rar文件)包含了关于安卓数据存储的学习资源,旨在帮助开发者深入理解这一核心概念。 1. **Shared Preferences** Shared Preferences是...

    iOS基础——数据操作之Sqlite3、FMDB

    在iOS开发中,数据存储是不可或缺的一部分,而SQLite3和FMDB则是常用的数据持久化解决方案。SQLite3是一个轻量级的、嵌入式的关系型数据库,而FMDB是Objective-C的SQLite3封装库,它提供了更简洁易用的API来操作...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

    安卓Android源码——android相册系统(用Matrix实现).rar

    这个压缩包“安卓Android源码——android相册系统(用Matrix实现).rar”显然提供了一个使用Matrix类来实现相册功能的示例代码。Matrix是Android SDK中的一个关键类,用于进行2D图像变换,如旋转、缩放、平移等。接...

    安卓Android源码——连接SQLite数据库源码.zip

    本资料包“安卓Android源码——连接SQLite数据库源码.zip”包含了关于如何在Android应用中连接和操作SQLite数据库的具体源代码示例。 首先,我们来看“源码说明.txt”,这应该包含了对源码的详细解释和使用指导。...

    android应用开发详解 郭宏志编著 pdf格式

    **第八章:Android广播事件处理Broadcast Receiver** - **广播接收器注册**:指导如何注册和取消广播接收器。 - **有序与无序广播**:区分两种广播类型的处理顺序和特点。 - **动态与静态广播**:分析两种广播注册...

    安卓Android源码——安卓Android学习——数据存储.rar

    本压缩包文件"安卓Android源码——安卓Android学习——数据存储.rar"显然是针对安卓数据存储机制的学习资料,其中可能包含了相关的源代码示例和讲解。下面我们将深入探讨安卓中的数据存储方法。 1. **Shared ...

    Android开发笔记——模拟器、应用教程 pdf

    总之,这份"Android开发笔记——模拟器、应用教程"将引导你全面了解Android开发的核心技术和实践方法,无论你是初学者还是经验丰富的开发者,都可以从中受益。通过学习和掌握这些知识点,你将能够创建出高质量、适应...

    安卓Android源码——NotePad便签.zip

    《安卓Android源码——NotePad便签》 在Android操作系统中,NotePad是经典的示例应用,用于展示基本的数据库操作、UI设计以及事件处理等核心功能。这个压缩包文件包含的就是NotePad应用的源代码,是学习Android开发...

    安卓Android源码——SqliteManager源码.zip

    在Android开发中,SQLite数据库是广泛使用的轻量级数据库,它为应用程序提供了存储和检索结构化数据的能力。SQLiteManager是Android系统中用于管理SQLite数据库的一个重要工具,其源码对于理解数据库操作、数据存储...

    安卓Android源码——CnBeta资讯阅读器源码.zip

    这篇文档将深入解析《安卓Android源码——CnBeta资讯阅读器源码》的相关知识点,主要涵盖Android开发、源码分析以及资讯应用的构建技术。首先,我们需要理解Android系统是Google主导开发的一种开源移动操作系统,它...

    Android-sqlite3命令-Android开发-sqlite3_armv7

    在Android开发中,SQLite是一个至关重要的组件,它是一个轻量级的、自包含的、开源的SQL数据库引擎,被广泛用于存储和管理应用程序中的结构化数据。本文将深入探讨`sqlite3`命令行工具在Android环境下的应用,尤其是...

Global site tag (gtag.js) - Google Analytics