android SQLite(单词的添加与查询应用)
本人小白,刚接触android,为方便记忆,将平时练习的代码写下来,跟大家分享,也希望大神批评指正。
这个实例主要用到的SQLite数据库的操作,可以向数据库添加单词,查询,修改以及删除单词,描述如有不当之处,还请帮忙纠正,下面上源码。
------------------------------------------我是邪恶的分割线----------------------------------------------
下面是java文件
1.创建数据库:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { //定义创建数据表的语句
private static final String CREATE_TABLES="create table word_dic(_id INTEGERT PRIMARY KEY AUTOINCREMENT,word,detail)"; //定义构造函数
public DatabaseHelper(Context context,String name,int version){
super(context,name,null,version);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(CREATE_TABLES);
} @Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// TODO Auto-generated method stub } }
2.创建界面UI
import java.util.ArrayList;
import java.util.HashMap; import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity {
private EditText word;
private EditText detail;
private Button insert;
private Button query;
private Button update;
private Button delete;
DatabaseHelper dbHelper=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //获取控件对象
word=(EditText)findViewById(R.id.word);
detail=(EditText)findViewById(R.id.detail);
insert=(Button)findViewById(R.id.insert);
query=(Button)findViewById(R.id.query);
update=(Button)findViewById(R.id.update);
delete=(Button)findViewById(R.id.delete); //生成DatabaseHelper对象
dbHelper=new DatabaseHelper(MainActivity.this,"english_db",1); //两个EditText用来获取用户的输入
//String wordStr=word.getText().toString();
//String detailStr=detail.getText().toString(); //**************************
//为按钮绑定相应的监听器
//************************** //添加单词
insert.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db=dbHelper.getWritableDatabase();
String wordStr=word.getText().toString();
String detailStr=detail.getText().toString();
ContentValues values=new ContentValues();
values.put("word", wordStr);
values.put("detail", detailStr);
db.insert("word_dic", null, values);
Toast.makeText(MainActivity.this, "添加单词成功", Toast.LENGTH_LONG).show();
}
}); //查询单词
query.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db=dbHelper.getReadableDatabase();
String wordStr=word.getText().toString(); Cursor cursor=db.query("word_dic", new String[]{"_id","word","detail"}, "word like ?",
new String[]{wordStr},null, null, null);
ArrayList<HashMap<String, String>> list=new ArrayList<HashMap<String,String>>();
while(cursor.moveToNext()){
HashMap<String, String> map=new HashMap<String, String>();
map.put("word", cursor.getString(cursor.getColumnIndex("word")));
map.put("detail", cursor.getString(cursor.getColumnIndex("detail")));
list.add(map);
}
Intent intent=new Intent(MainActivity.this,OtherActivity.class);
Bundle bundle=new Bundle();
bundle.putSerializable("data", list);
intent.putExtras(bundle);
startActivity(intent);
}
}); //修改单词
update.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db=dbHelper.getWritableDatabase();
String wordStr=word.getText().toString();
String detailStr=detail.getText().toString();
ContentValues values=new ContentValues();
values.put("word", wordStr);
values.put("detail", detailStr);
db.update("word_dic", values, "word like ?", new String[]{wordStr});
Toast.makeText(MainActivity.this, "单词已更新", Toast.LENGTH_LONG).show();
}
}); //删除单词
delete.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db=dbHelper.getWritableDatabase();
String wordStr=word.getText().toString(); db.delete("word_dic", "word like ?", new String[]{wordStr});
Toast.makeText(MainActivity.this, "单词已删除", Toast.LENGTH_LONG).show();
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }
3.创建查询结果的ACTIVITY:
import java.util.ArrayList;
import java.util.HashMap; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter; public class OtherActivity extends Activity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.result); listView=(ListView)findViewById(R.id.listView);
Intent intent=getIntent();
Bundle bundle=intent.getExtras(); @SuppressWarnings("unchecked")
ArrayList<HashMap<String, String>> list=(ArrayList<HashMap<String,String>>)bundle.getSerializable("data");
SimpleAdapter adapter=new SimpleAdapter(this, list, R.layout.option, new String[]{"word","detail"},
new int[]{R.id.wordShow,R.id.detailShow});
listView.setAdapter(adapter);
} }
*********************************以下是用到的资源文件*********************************************
1.main.xml:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow android:paddingLeft="10dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="单词:"
android:textSize="16sp"
/>
<EditText
android:id="@+id/word"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:selectAllOnFocus="true"
android:hint="请输入单词"
/>
</TableRow>
<TableRow android:paddingLeft="10dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="释意:"
android:textSize="16sp"
/>
<EditText
android:id="@+id/detail"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:selectAllOnFocus="true"
android:hint="请输入单词的解释"
/>
</TableRow>
<Button
android:id="@+id/insert"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="添加单词"
/>
<Button
android:id="@+id/query"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="查询单词"
/>
<Button
android:id="@+id/update"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="修改单词"
/>
<Button
android:id="@+id/delete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="删除单词"
/>
</TableLayout>
2.result.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView> </LinearLayout>
3.option.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <TextView
android:id="@+id/wordShow"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
/> <TextView
android:id="@+id/detailShow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/wordShow"
/> </RelativeLayout>
android SQLite(单词的添加与查询应用)的更多相关文章
- Android SQLite 通配符查询找不到参数问题
使用Android SQLite中SQLiteDatabase类的query方法查询时,如果where中包含通配符,则参数会无法设置,如类似下面的方法查询时 SQLiteDatabase db = d ...
- Android Sqlite 数据库版本更新
Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承 ...
- Android SQLite总结(一) (转)
Android SQLite总结(一) 郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...
- Android SQLite 数据库详细介绍
Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...
- Android SQLite简介
SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, Python)都使 ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- Android SQLite总结[转载]
[转载] :http://blog.163.com/zqy216_2008/blog/static/4119371820119954812509/ 最近在做的项目涉及到了SQLite,大学时没有好好学 ...
- Android SQLite与ListView的简单使用
2017-04-25 初写博客有很多地方都有不足,希望各位大神给点建议. 回归主题,这次简单的给大家介绍一下Android SQLite与ListView的简单使用sqlite在上节中有介绍,所以在这 ...
- xamarin.Android SQLite存储
在可移植类库 新建: using SQLite.Net.Interop; using System; using System.Collections.Generic; using System.Li ...
随机推荐
- VMware Storage VMotion概述及功能
可以跨存储阵列实时迁移虚拟机磁盘文件.VMware Storage VMotion 使您可以在共享存储位置之间和跨共享存储位置重新分配虚拟机磁盘文件,同时保证连续的服务供应和事务处理的完整性. 1.可 ...
- jquerydom对象和字符串之间的转换
字符串转jquery对象:var tmp = $('<div>dd</div>').attr('id','bbq'); //用$符包裹起来即可 jquery对象转字符串: tm ...
- redis的五种基本数据类型
redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...
- 50 days before NOI2017
2017.5.31 今天开了这个博客,打算每天来写点东西,嗯...毕竟要NOI了嘛... 第一天跑到常州里集训,打开题目一看湖南集训题... T1刷一下写完,然后交了然后发现错了...赶紧改过来,大概 ...
- BZOJ1179_APIO2009_抢掠计划_C++
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1179 一道用 Tarjan 缩点+SPFA 最长路的题(Tarjan 算法:http://ww ...
- 飞扬的小鸟(NOIP2014)(丧病DP题)
原题传送门 刚开始我还以为这道题目非常的简单.. 然后随便打了一个DP,直接WA,被zxyer狠狠地D了一顿. 然后发现有好多细节.. 首先假如某横坐标没有管子,那么l[x]=0;h[x]=m+1; ...
- 【bugfree】安装
我用的是WIN8系统 首先要安装XAMPP,开始里面的Apache和MySQL服务. 在运行Apache服务时报错: ----------------------------------------- ...
- 【linux高级程序设计】(第十五章)UDP网络编程应用 3
UDP组播通信 组播IP地址: D类IP地址 1110.********** 224.0.0.1 ~ 239.255.255.255 组播MAC地址:低23位,直接对应IP地址, 从右数第24位为 ...
- 找出数字数组中最大的元素(使用Math.max函数)
从汤姆大叔的博客里看到了6个基础题目:本篇是第1题 - 找出数字数组中最大的元素(使用Match.max函数) 从要求上来看,不能将数组sort.不能遍历.只能使用Math.max,所以只能从java ...
- Guava源码学习(一)Optional
基于版本:Guava 22.0 Wiki:Using and avoiding null 0:Optional简介 null在很多场景下会引发问题,NullPointerException困扰过无数的 ...