热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidSQLite数据库的使用实例详解

2019独角兽企业重金招聘Python工程师标准创建数据库帮助类DbHelper.java:packagecom.example.db;importandroid.conte


2019独角兽企业重金招聘Python工程师标准>>> hot3.png

创建数据库帮助类DbHelper.java:

package com.example.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists tb_people"+
"(_id integer primary key autoincrement,"+
"name varchar(20),"+
"phone varchar(12),"+
"mobile varchar(12),"+
"email varchar(30))");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}


主布局文件:

ch9_sqlmain.xml


android:layout_
android:layout_
android:orientation="vertical" >
android:layout_
android:text="所有联系人:"
android:textSize="15px"/>
android:layout_
android:layout_>
android:layout_
android:text="编号"/>
android:layout_
android:text="姓名"/>
android:layout_
android:text="电话"/>
android:layout_
android:text="手机"/>
android:layout_
android:text="电子信箱"/>

android:layout_
android:id="@+id/list_people"/>


编写ListView的Item显示布局文件ch9_peoplelist.xml:


android:layout_
android:layout_
android:orientation="horizontal" >
android:layout_
android:layout_/>
android:layout_
android:layout_/>
android:layout_
android:layout_/>
android:layout_
android:layout_/>
android:layout_
android:layout_/>



主活动类SqlMainActivity.java:

package com.example.ch9;
import com.example.baseexample.R;
import com.example.db.DbHelper;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class SqlMainActivity extends Activity {
private ListView list_people;
private DbHelper dbhelper;
private SQLiteDatabase db;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ch9_sqlmain);

list_people = (ListView)findViewById(R.id.list_people);

dbhelper = new DbHelper(this, "Db_People", null, 1);

db = dbhelper.getReadableDatabase();
Cursor c = db.query("tb_people", new String[]{"_id","name","phone","mobile","email"}, null, null, null, null, null);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.ch9_peoplelist, c, new String[]{"_id","name","phone","mobile","email"}, new int[]{R.id.id,R.id.name,R.id.phone,R.id.mobile,R.id.email});

this.list_people.setAdapter(adapter);
this.registerForContextMenu(list_people);
}

public boolean onCreateOptionsMenu(Menu menu){
menu.add(Menu.NONE,Menu.FIRST+1,1,"添加").setIcon(android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+1,2,"退出").setIcon(android.R.drawable.ic_menu_delete);
return true;
}

public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case Menu.FIRST+1:
Intent intent = new Intent();
intent.setClass(SqlMainActivity.this, AddPeopleActivity.class);
startActivity(intent);
break;
case Menu.FIRST+2:finish();
break;
}
return super.onOptionsItemSelected(item);
}

public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){
menu.setHeaderIcon(R.drawable.ic_launcher);
menu.add(0,3,0,"修改");
menu.add(0, 4, 0, "删除");
}

public boolean onContextItemSelected(MenuItem item){
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo();
switch(item.getItemId()){
case 3:
String name=((TextView)menuInfo.targetView.findViewById(R.id.name)).getText().toString();
String phOne=((TextView)menuInfo.targetView.findViewById(R.id.phone)).getText().toString();
String mobile=((TextView)menuInfo.targetView.findViewById(R.id.mobile)).getText().toString();
String email=((TextView)menuInfo.targetView.findViewById(R.id.email)).getText().toString();
Intent intent = new Intent();
intent.setClass(SqlMainActivity.this, AddPeopleActivity.class);
Bundle bundle = new Bundle();
bundle.putLong("id", menuInfo.id);
bundle.putString("name", name);
bundle.putString("phone", phone);
bundle.putString("mobile", mobile);
bundle.putString("email", email);
intent.putExtras(bundle);
startActivity(intent);
break;
case 4:
dbhelper = new DbHelper(this,"Db_People",null,1);
db = dbhelper.getWritableDatabase();
db.delete("tb_people", "_id=?", new String[]{menuInfo.id+""});
break;
}

return true;
}

}


布局文件ch9_addpeople.xml:


android:layout_
android:layout_
android:orientation="vertical" >
android:layout_
android:orientation="horizontal">
android:layout_
android:text="用户名"
android:layout_weight="2"/>
android:layout_
android:id="@+id/edt_name"
android:layout_weight="1"/>

android:layout_
android:orientation="horizontal">
android:layout_
android:text="联系电话"
android:layout_weight="2"/>
android:layout_
android:id="@+id/edt_phone"
android:layout_weight="1"/>

android:layout_
android:orientation="horizontal">
android:layout_
android:text="手机"
android:layout_weight="2"/>
android:layout_
android:id="@+id/edt_mobile"
android:layout_weight="1"/>

android:layout_
android:orientation="horizontal">
android:layout_
android:text="电子信箱"
android:layout_weight="2"/>
android:layout_
android:id="@+id/edt_email"
android:layout_weight="1"/>

android:layout_
android:orientation="horizontal">

推荐阅读
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
author-avatar
平凡洗护店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有