在Android的SQLite数据库的做法 [英] sqlite database practice in android
问题描述
我已经提出申请,在Android中数据库的做法简单,因为我不知道的想法 SQLite数据库
我已经通过它那么多的环节了,但大部分他们是复杂的,我创建了4活动1日(mainActivity)包含3个按钮
添加,编辑和查看,在第二届活动(AddActivity)我已3 EditTexts
其输入的数值应存放在database.So可以请你告诉我做同样的简单步骤?
MainActivity.java
包com.example.db;进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;公共类MainActivity延伸活动{ @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
按钮添加=(按钮)findViewById(R.id.button1);
编辑按钮=(按钮)findViewById(R.id.button2);
按钮来查看=(按钮)findViewById(R.id.button3); add.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(查看为arg0){
// TODO自动生成方法存根]
意图I =新意图(MainActivity.this,AddActivity.class);
startActivity(ⅰ); }
});
edit.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
意图I =新意图(MainActivity.this,EditActivity.class);
startActivity(ⅰ); }
}); view.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
意图I =新意图(MainActivity.this,ViewActivity.class);
startActivity(ⅰ);
}
});
} }
AddActivity.java
包com.example.db;进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;公共类AddActivity延伸活动{
EditText上名字,ADDRES,响度单位;
按钮广告,CN;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_add); 名称=(EditText上)findViewById(R.id.name);
ADDRES =(EditText上)findViewById(R.id.address);
PHON =(EditText上)findViewById(R.id.phone); AD =(按钮)findViewById(R.id.add);
CN =(按钮)findViewById(R.id.cancel);
最后SQLiteDatabase DB = openOrCreateDatabase(MYDB,MODE_PRIVATE,NULL);
db.execSQL(CREATE TABLE如果不存在简单的(名称VARCHAR,地址为varchar,电话VARCHAR);
ad.setOnClickListener(新OnClickListener(){
字符串N = name.getText()的toString();
字符串= addres.getText()的toString()。
。串P = phon.getText()的toString();
@覆盖
公共无效的onClick(视图v){ db.execSQL(插入简单的值('N','A','P'));
光标C = db.rawQuery(从简单的SELECT *,NULL);
c.moveToFirst(); }
}); cn.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
意图I =新意图(AddActivity.this,MainActivity.class);
startActivity(ⅰ);
}
});
}
}
的main.xml
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
工具:上下文=MainActivity。> <按钮
机器人:ID =@ + ID /按钮1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentLeft =真
机器人:layout_alignParentTop =真
机器人:layout_marginLeft =100dp
机器人:layout_marginTop =92dp
机器人:文字=添加/> <按钮
机器人:ID =@ + ID /按钮2
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignRight =@ + ID /按钮1
机器人:layout_below =@ + ID /按钮1
机器人:layout_marginTop =28dp
机器人:文字=编辑/> <按钮
机器人:ID =@ + ID /按钮3
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignRight =@ + ID /按钮2
机器人:layout_below =@ + ID /按钮2
机器人:layout_marginTop =37dp
机器人:文字=查看/>< / RelativeLayout的>
Add.xml
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
工具:上下文=。AddActivity> <的TextView
机器人:ID =@ + ID / textView3
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentLeft =真
机器人:layout_below =@ + ID / textView2
机器人:layout_marginTop =60dp
机器人:文字=手机
机器人:textAppearance =机器人:ATTR / textAppearanceMedium/> <的TextView
机器人:ID =@ + ID / textView1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_above =@ + ID / textView3
机器人:layout_alignParentLeft =真
机器人:layout_alignParentTop =真
机器人:layout_marginLeft =17dp
机器人:layout_marginTop =14dp
机器人:文字=姓名
机器人:textAppearance =机器人:ATTR / textAppearanceMedium/> <的EditText
机器人:ID =@ + ID /名称
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBaseline =@ + ID / textView1
机器人:layout_alignBottom =@ + ID / textView1
机器人:layout_alignParentRight =真
机器人:EMS =10> < requestFocus的/>
< /&的EditText GT; <的TextView
机器人:ID =@ + ID / textView2
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentTop =真
机器人:layout_marginTop =80dp
机器人:layout_toLeftOf =@ + ID / editText2
机器人:文字=地址
机器人:textAppearance =机器人:ATTR / textAppearanceMedium/> <的EditText
机器人:ID =@ + ID /地址
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentRight =真
机器人:layout_alignTop =@ + ID / textView2
机器人:EMS =10
安卓的inputType =textPostalAddress/> <的EditText
机器人:ID =@ + ID /手机
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / textView3
机器人:layout_alignParentRight =真
机器人:EMS =10
安卓的inputType =手机/> <按钮
机器人:ID =@ + ID /加
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID /手机
机器人:layout_marginTop =62dp
机器人:layout_toRightOf =@ + ID / textView1
机器人:文字=添加/> <按钮
机器人:ID =@ + ID /取消
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID /加
机器人:layout_marginLeft =36dp
机器人:layout_toRightOf =@ + ID /加
机器人:文字=取消/>< / RelativeLayout的>
确定我想你想编辑文本的价值添加到您的分贝
包com.example.databasesample;
进口的java.util.ArrayList;
进口android.app.Activity;
进口android.content.ContentValues;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.os.Bundle;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.AdapterView;
进口android.widget.AdapterView.OnItemClickListener;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.ListView;公共类MainActivity扩展活动实现OnClickListener {
静态的EditText edtAdd;
按钮btnAdd,btnShow;
ListView的LISTNAME;
静态DataBaseSqlLiteHelper mBaseSqlLiteHelper;
DbModel之后mDbModel;
ArrayList的< DbModel之后> mArrayList;
ListAdapter mAdapter;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
初始化(); mArrayList =新的ArrayList< DbModel之后>();
mBaseSqlLiteHelper =新DataBaseSqlLiteHelper(MainActivity.this);
mBaseSqlLiteHelper.getReadableDatabase();
mBaseSqlLiteHelper.getWritableDatabase();}公共无效的initialize(){
edtAdd =(EditText上)findViewById(R.id.edtEnterName);
btnAdd =(按钮)findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(本);
btnShow =(按钮)findViewById(R.id.btnShow);
btnShow.setOnClickListener(本);
LISTNAME =(ListView控件)findViewById(R.id.listName);
listName.setOnItemClickListener(新OnItemClickListener(){ @覆盖
公共无效onItemClick(适配器视图<>为arg0,ARG1观,诠释ARG2,
长ARG3){
// TODO自动生成方法存根
deleteItem(mArrayList.get(ARG2).getId()); }
});
}@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
//充气菜单;如果是present这增加了项目操作栏。
。getMenuInflater()膨胀(R.menu.main,菜单);
返回true;
}@覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
开关(v.getId()){
案例R.id.btnAdd:
addName(edtAdd.getText()的toString());
打破;
案例R.id.btnShow:
showNames();
打破;
默认:
打破;
}}
//添加值
公共无效addName(字符串名称){
SQLiteDatabase mOpenHelper = mBaseSqlLiteHelper.getWritableDatabase();
ContentValues mContentValues =新ContentValues();
mContentValues.put(名,名);
mOpenHelper.insert(名称,空,mContentValues);
mOpenHelper.close();
}
//显示列表中的值
公共无效showNames(){
字符串selectQuery =SELECT * FROM名称;
SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();
光标mCursor = mDatabase.rawQuery(selectQuery,NULL);
如果(mCursor.moveToFirst()){
做{
mDbModel =新DbModel之后,();
mDbModel.setId(mCursor.getString(0));
mDbModel.setName(mCursor.getString(1));
mArrayList.add(mDbModel); }而(mCursor.moveToNext());
}
mAdapter =新ListAdapter(MainActivity.this,mArrayList);
listName.setAdapter(mAdapter);
}
delete一个值
公共无效deleteItem(字符串ID){
SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase(); 字符串删除= + ID上的名称凡_id =删除; mDatabase.execSQL(删除);
mDatabase.close();
mAdapter.notifyDataSetChanged();
mArrayList.remove(ID);}
//更新项目
公共静态无效的updateItem(字符串ID){
SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase(); 字符串更新=更新设置NAMES名字= \\
+ edtAdd.getText()的toString()+\\,其中_id =+ ID。
mDatabase.execSQL(更新);
mDatabase.close();
}
}
包com.example.databasesample;
公共类DatabaseConstants {公共静态最后弦乐CREATE_TABLE_PROFILE_QUERY =CREATE TABLE名称(
+_id整数主键自动增量+名VARCHAR +);
}
包com.example.databasesample;
进口android.content.Context;
android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
公共类DataBaseSqlLiteHelper扩展SQLiteOpenHelper {
私有静态最后弦乐DATABASE_NAME =我的样本数据库;
私有静态最终诠释DATABASE_VERSION = 1;公共DataBaseSqlLiteHelper(上下文的背景下){
超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}@覆盖
公共无效的onCreate(SQLiteDatabase DB)
{
db.execSQL(DatabaseConstants.CREATE_TABLE_PROFILE_QUERY);}@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){}
}
包com.example.databasesample;
公共类DbModel之后{
字符串ID;
字符串名称;
公共字符串的getId(){
返回ID;
}
公共无效SETID(字符串ID){
this.id = ID;
}
公共字符串的getName(){
返回名称;
}
公共无效setname可以(字符串名称){
this.name =名称;
}
}
包com.example.databasesample;
进口的java.util.ArrayList;
进口android.content.Context;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.ViewGroup;
进口android.widget.BaseAdapter;
进口android.widget.Button;
进口android.widget.TextView;
公共类ListAdapter延伸BaseAdapter {
上下文mContext;
ArrayList的< DbModel之后> mArrayList;公共ListAdapter(上下文mContext,ArrayList的< DbModel之后>型号){
// TODO自动生成构造函数存根
this.mArrayList =模型;
this.mContext = mContext;
}@覆盖
公众诠释的getCount(){
// TODO自动生成方法存根
返回mArrayList.size();
}@覆盖
公共对象的getItem(INT为arg0){
// TODO自动生成方法存根
返回将arg0;
}@覆盖
众长getItemId(INT为arg0){
// TODO自动生成方法存根
返回将arg0;
}@覆盖
公共查看getView(最终诠释的立场,观点convertView,父母的ViewGroup){
// TODO自动生成方法存根
如果(convertView == NULL){
LayoutInflater mLayoutInflater =(LayoutInflater)mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mLayoutInflater.inflate(R.layout.list_layout,父母,
假);
TextView的txtId =(TextView中)convertView.findViewById(R.id.txtId);
txtId.setText(mArrayList.get(位置).getId());
TextView的txtName的=(TextView中)convertView
.findViewById(R.id.txtName);
txtName.setText(mArrayList.get(位置).getName());
按钮btnUpdate =(按钮)convertView.findViewById(R.id.btnUpdate);
btnUpdate.setOnClickListener(新OnClickListener(){ @覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
MainActivity.updateItem(mArrayList.get(位置).getId());
}
}); }
返回convertView;
}
}
// activity_main.xml中 <的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:paddingLeft =@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=MainActivity。><的EditText
机器人:ID =@ + ID / edtEnterName
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:提示=输入名称/><按钮
机器人:ID =@ + ID / btnAdd
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID / edtEnterName
机器人:文字=添加到资料库/><按钮
机器人:ID =@ + ID / btnShow
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID / btnAdd
机器人:文本=显示/>< ListView控件
机器人:ID =@ + ID / LISTNAME
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID / btnShow>
< /&的ListView GT;
// listlayout.xml
< XML版本=1.0编码=UTF-8&GT?;
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent><的TextView
机器人:ID =@ + ID / txtId
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT/><的TextView
机器人:ID =@ + ID / txtName的
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_marginLeft =20dp
机器人:layout_toRightOf =@ + ID / txtId/><按钮
机器人:ID =@ + ID / btnUpdate
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID / txtName的
机器人:文字=更新/>
下面我做一个应用程序,可以在其中添加,编辑和更新您的database.i使用两大类第一DataBaseSqlLiteHelper.java创建DATABSE和DatabaseConstants.java创建表。要删除数据库点击项目名录和第一次更新在此输入编辑text.comment值,如果你需要进一步的帮助。
I have made an application simple in android for database practice,as i have no idea about Sqlite database
I've gone through so many links for it,But most of them are complex,I have created 4 activities 1st (mainActivity) contains 3 Buttons
"add","Edit", and "View" in 2nd activity (AddActivity) I have made 3 EditTexts
its entered values should be stored in database.So can you please tell me easy steps for doing same?
MainActivity.java
package com.example.db;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button add=(Button)findViewById(R.id.button1);
Button edit=(Button)findViewById(R.id.button2);
Button view=(Button)findViewById(R.id.button3);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub]
Intent i=new Intent(MainActivity.this,AddActivity.class);
startActivity(i);
}
});
edit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(MainActivity.this,EditActivity.class);
startActivity(i);
}
});
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(MainActivity.this,ViewActivity.class);
startActivity(i);
}
});
}
}
AddActivity.java
package com.example.db;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class AddActivity extends Activity {
EditText name,addres,phon;
Button ad,cn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
name = (EditText)findViewById(R.id.name);
addres=(EditText)findViewById(R.id.address);
phon = (EditText)findViewById(R.id.phone);
ad =(Button)findViewById(R.id.add);
cn=(Button)findViewById(R.id.cancel);
final SQLiteDatabase db = openOrCreateDatabase("Mydb",MODE_PRIVATE, null);
db.execSQL("create table if not exists simple(name varchar,address varchar,phone varchar");
ad.setOnClickListener(new OnClickListener() {
String n=name.getText().toString();
String a=addres.getText().toString();
String p= phon.getText().toString();
@Override
public void onClick(View v) {
db.execSQL("insert into simple values('n','a','p')");
Cursor c =db.rawQuery("select * from simple",null);
c.moveToFirst();
}
});
cn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i =new Intent(AddActivity.this,MainActivity.class);
startActivity(i);
}
});
}
}
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="100dp"
android:layout_marginTop="92dp"
android:text="Add" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="28dp"
android:text="Edit" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button2"
android:layout_below="@+id/button2"
android:layout_marginTop="37dp"
android:text="View" />
</RelativeLayout>
Add.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AddActivity" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView2"
android:layout_marginTop="60dp"
android:text="phone"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView3"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="17dp"
android:layout_marginTop="14dp"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_alignParentRight="true"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="80dp"
android:layout_toLeftOf="@+id/editText2"
android:text="Address"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView2"
android:ems="10"
android:inputType="textPostalAddress" />
<EditText
android:id="@+id/phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView3"
android:layout_alignParentRight="true"
android:ems="10"
android:inputType="phone" />
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/phone"
android:layout_marginTop="62dp"
android:layout_toRightOf="@+id/textView1"
android:text="Add" />
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/add"
android:layout_marginLeft="36dp"
android:layout_toRightOf="@+id/add"
android:text="Cancel" />
</RelativeLayout>
ok I think you want to add the value of edit text into your db
package com.example.databasesample;
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentValues;
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.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class MainActivity extends Activity implements OnClickListener {
static EditText edtAdd;
Button btnAdd, btnShow;
ListView listName;
static DataBaseSqlLiteHelper mBaseSqlLiteHelper;
DBModel mDbModel;
ArrayList<DBModel> mArrayList;
ListAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialize();
mArrayList = new ArrayList<DBModel>();
mBaseSqlLiteHelper = new DataBaseSqlLiteHelper(MainActivity.this);
mBaseSqlLiteHelper.getReadableDatabase();
mBaseSqlLiteHelper.getWritableDatabase();
}
public void initialize() {
edtAdd = (EditText) findViewById(R.id.edtEnterName);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(this);
btnShow = (Button) findViewById(R.id.btnShow);
btnShow.setOnClickListener(this);
listName = (ListView) findViewById(R.id.listName);
listName.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
deleteItem(mArrayList.get(arg2).getId());
}
});
}
@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;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btnAdd:
addName(edtAdd.getText().toString());
break;
case R.id.btnShow:
showNames();
break;
default:
break;
}
}
// for adding values
public void addName(String name) {
SQLiteDatabase mOpenHelper = mBaseSqlLiteHelper.getWritableDatabase();
ContentValues mContentValues = new ContentValues();
mContentValues.put("name", name);
mOpenHelper.insert("NAMES", null, mContentValues);
mOpenHelper.close();
}
//showing values in list
public void showNames() {
String selectQuery = "SELECT * FROM NAMES";
SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();
Cursor mCursor = mDatabase.rawQuery(selectQuery, null);
if (mCursor.moveToFirst()) {
do {
mDbModel = new DBModel();
mDbModel.setId(mCursor.getString(0));
mDbModel.setName(mCursor.getString(1));
mArrayList.add(mDbModel);
} while (mCursor.moveToNext());
}
mAdapter = new ListAdapter(MainActivity.this, mArrayList);
listName.setAdapter(mAdapter);
}
deleteing values
public void deleteItem(String id) {
SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();
String delete = "Delete from NAMES Where _id =" + id;
mDatabase.execSQL(delete);
mDatabase.close();
mAdapter.notifyDataSetChanged();
mArrayList.remove(id);
}
//updating item
public static void updateItem(String id) {
SQLiteDatabase mDatabase = mBaseSqlLiteHelper.getWritableDatabase();
String update = "Update NAMES set name=\""
+ edtAdd.getText().toString() + "\" where _id=" + id;
mDatabase.execSQL(update);
mDatabase.close();
}
}
package com.example.databasesample;
public class DatabaseConstants {
public static final String CREATE_TABLE_PROFILE_QUERY = "CREATE TABLE NAMES("
+ " _id integer primary key autoincrement," + " name VARCHAR"
+ ")";
}
package com.example.databasesample;
import android.content.Context;
android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DataBaseSqlLiteHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "My Sample DataBase";
private static final int DATABASE_VERSION = 1;
public DataBaseSqlLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(DatabaseConstants.CREATE_TABLE_PROFILE_QUERY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
package com.example.databasesample;
public class DBModel {
String id;
String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.example.databasesample;
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
public class ListAdapter extends BaseAdapter {
Context mContext;
ArrayList<DBModel> mArrayList;
public ListAdapter(Context mContext, ArrayList<DBModel> models) {
// TODO Auto-generated constructor stub
this.mArrayList = models;
this.mContext = mContext;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mArrayList.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
LayoutInflater mLayoutInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mLayoutInflater.inflate(R.layout.list_layout, parent,
false);
TextView txtId = (TextView) convertView.findViewById(R.id.txtId);
txtId.setText(mArrayList.get(position).getId());
TextView txtName = (TextView) convertView
.findViewById(R.id.txtName);
txtName.setText(mArrayList.get(position).getName());
Button btnUpdate=(Button)convertView.findViewById(R.id.btnUpdate);
btnUpdate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.updateItem(mArrayList.get(position).getId());
}
});
}
return convertView;
}
}
//activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/edtEnterName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Enter Name" />
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/edtEnterName"
android:text="Add to Database" />
<Button
android:id="@+id/btnShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnAdd"
android:text="Show" />
<ListView
android:id="@+id/listName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnShow" >
</ListView>
//listlayout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/txtId"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/txtName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/txtId" />
<Button
android:id="@+id/btnUpdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtName"
android:text="Update" />
Here I make an app in which you can add ,edit and update your database.i use Two main classes First DataBaseSqlLiteHelper.java to create databse and DatabaseConstants.java to create table. To delete item from db click on list and for update first enter value in edit text.comment on this if you need further help.
这篇关于在Android的SQLite数据库的做法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!