Android--增删改查--数据库的连接
2016-07-26 16:18
573 查看
需求:
通过对黑名单的操作实现安卓端的增删改查之数据库的连接
主要涉及的知识点:
1.安卓端数据库的连接,增删改查等操作
2.ListView以及适配器的操作
3.ListActivity优化功能
4.避免重复添加和更新已有的电话号码
首先需要创建如图所示的布局
当点击添加后上面的文字“还没有一个黑名单将消失”,显示的是添加的电话号码
这需要用到ArrayActivity优化需要做三个方面
1.让要显示的布局的Activity 继承 ListActivity
2.布局文件中ListView的id必须是系统指定的id:list
3.如果想在布局文件没有数据时,显示一个提示信息,可以创建一个TextView(但id必须是系统指定的id:empty)
接下来要新建一个类DBHelp用于连接数据库
这些写好后可以把一些简单的操作实现了,列如给ListView进行初始化,给添加的button按钮设置监听
接着需要创建一个实体类number有两个属性int _id,String number,分别实现两个构造方法(无参构造函数和两个带参构造函数,以及相应getXxx()和setXxx(),toString()),这里就不用多说
创建numberADO类实现增删改查(这只是基本的,后面的增删改查是实现app上的按钮)
接着写这些增删改查的测试类numberTest,通过这个类可以测试上面的方法是否正确
注意:测试类之前需要在Mainfest中加入一些东西
在application里activity前添加
接着下一篇实现数据库的增加
通过对黑名单的操作实现安卓端的增删改查之数据库的连接
主要涉及的知识点:
1.安卓端数据库的连接,增删改查等操作
2.ListView以及适配器的操作
3.ListActivity优化功能
4.避免重复添加和更新已有的电话号码
首先需要创建如图所示的布局
<ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </ListView> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加" android:onClick="add"/>
当点击添加后上面的文字“还没有一个黑名单将消失”,显示的是添加的电话号码
这需要用到ArrayActivity优化需要做三个方面
1.让要显示的布局的Activity 继承 ListActivity
2.布局文件中ListView的id必须是系统指定的id:list
3.如果想在布局文件没有数据时,显示一个提示信息,可以创建一个TextView(但id必须是系统指定的id:empty)
<TextView android:id="@android:id/empty" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:text="还没有一个黑名单" android:gravity="center"/>
接下来要新建一个类DBHelp用于连接数据库
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DBHelp extends SQLiteOpenHelper{ public DBHelp(Context context) { super(context, "ren.db", null, 1); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { Log.i("TAG", "DBHelp onCreate()"); String sql = "create table ren(_id integer primary key autoincrement,number varchar)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
这些写好后可以把一些简单的操作实现了,列如给ListView进行初始化,给添加的button按钮设置监听
接着需要创建一个实体类number有两个属性int _id,String number,分别实现两个构造方法(无参构造函数和两个带参构造函数,以及相应getXxx()和setXxx(),toString()),这里就不用多说
创建numberADO类实现增删改查(这只是基本的,后面的增删改查是实现app上的按钮)
import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; public class numberADO { DBHelp dbHelp = null; public numberADO (Context context) { dbHelp = new DBHelp(context); } /** * 增加 */ public void addnumber(number blacknumber) { SQLiteDatabase database = dbHelp.getReadableDatabase(); ContentValues values = new ContentValues(); values.put("number", blacknumber.getNumber()); long id = database.insert("ren", null, values ); Log.i("TAG", id+""); database.close(); } /** * 删除 */ public void deletenumber(int _id) { SQLiteDatabase database = dbHelp.getReadableDatabase(); database.delete("ren", "_id=?", new String[]{_id+""}); database.close(); } /** * 修改 */ public void updatenumber(number blacknumber) { SQLiteDatabase database = dbHelp.getReadableDatabase(); ContentValues values = new ContentValues(); values.put("number", blacknumber.getNumber()); database.update("ren", values, "_id="+blacknumber.get_id(), null); } /** * 查询 */ public List<number> select() { List<number> list = new ArrayList<number>(); SQLiteDatabase database = dbHelp.getReadableDatabase(); Cursor cursor = database.query("ren", null, null, null, null, null, "_id desc"); while (cursor.moveToNext()) { int _id = cursor.getInt(0); String number = cursor.getString(1); list.add(new number(_id,number)); } cursor.close(); database.close(); return list; } }
接着写这些增删改查的测试类numberTest,通过这个类可以测试上面的方法是否正确
注意:测试类之前需要在Mainfest中加入一些东西
在application里activity前添加
<uses-library android:name="android.test.runner"/>在application外面加入
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="hpu.fanny.blacknumberdemo" />//注意这里需要把包名改为你的项目的包名
import java.util.List; import android.test.AndroidTestCase; import android.util.Log; public class numberTest extends AndroidTestCase { /** * 添加测试 */ public void testAdd() { numberADO ado = new numberADO(getContext()); ado.addnumber(new number(-1, "456")); } /** * 删除测试 */ public void testDelete() { numberADO ado = new numberADO(getContext()); ado.deletenumber(2); } /** * 修改 */ public void testUpdatenumber () { numberADO ado = new numberADO(getContext()); ado.updatenumber(new number(1, "456")); } /** * 查询 */ public void testSelect () { numberADO ado = new numberADO(getContext()); List<number> list = ado.select(); Log.i("TAG", list.toString()); } }
接着下一篇实现数据库的增加
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件