android之SQLite資料庫操作通訊錄示例
阿新 • • 發佈:2018-12-21
SQLite資料庫操作通訊錄示例
PersonSQLiteOpenHelper.java
package com.itheima.person; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class PersonSQLiteOpenHelper extends SQLiteOpenHelper{ public PersonSQLiteOpenHelper(Context context) { super(context,"person.db",null,5);} @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table person(id integer primary key autoincrement," + "name varchar(20)," + "number varchar(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table person add account varchar(20)"); } }
ActivityMain.java
package com.example.txl; import com.itheima.person.PersonSQLiteOpenHelper; import android.app.Activity; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; public class MainActivity extends Activity { private PersonSQLiteOpenHelper person; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); person=new PersonSQLiteOpenHelper(this); SQLiteDatabase db=person.getReadableDatabase(); } //跳轉到查詢頁面 public void select(View view){ Intent intent=new Intent(this,SelectActivity.class); startActivity(intent); } //跳轉到刪除頁面 public void delect(View view){ Intent intent=new Intent(this,DelectActivity.class); startActivity(intent); } //跳轉到刪除頁面 public void xiugai(View view){ Intent intent=new Intent(this,XiugaiActivity.class); startActivity(intent); } public void add(View view){ Intent intent=new Intent(this,AddActivity.class); startActivity(intent); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
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" android:background="@drawable/bg" tools:context="com.example.txl.MainActivity" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_marginTop="80dp" android:text="通 訊 錄" android:textSize="80sp" /> <LinearLayout android:id="@+id/layoutbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> <Button android:onClick="select" android:id="@+id/b_select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="檢視"/> <Button android:onClick="add" android:id="@+id/b_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增加"/> <Button android:onClick="xiugai" android:id="@+id/b_xiugai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="修改"/> <Button android:onClick="delect" android:id="@+id/b_delect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="刪除"/> </LinearLayout> </RelativeLayout>
SelecyActivity.java
package com.example.txl;
import com.itheima.person.PersonSQLiteOpenHelper;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SelectActivity extends Activity {
private PersonSQLiteOpenHelper person;
String sname;
private TextView name;
private TextView number;
private EditText selectname;
private Button queding;
String getname;
String getnumber;
SQLiteDatabase db;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select);
person=new PersonSQLiteOpenHelper(this);
name=(TextView) findViewById(R.id.t_selectname2);
number=(TextView) findViewById(R.id.t_selectnumber2);
selectname=(EditText) findViewById(R.id.e_selectname2);
queding=(Button) findViewById(R.id.b_selectqueding2);
queding.setOnClickListener(new queding());}
//返回響應
public void selectfanhui(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
//確定響應
private class queding implements OnClickListener{
@Override
public void onClick(View v) {
db=person.getReadableDatabase();
sname=selectname.getText().toString().trim();
Cursor cursor=db.query("person",null,"name=?", new String[]{sname}, null, null,null);
while(cursor.moveToNext()){
getname=cursor.getString(cursor.getColumnIndex("name"));
getnumber=cursor.getString(cursor.getColumnIndex("number"));
}
if(getname==null){getname="查無此人!";}
if(getnumber==null){getnumber="查無此號!";}
name.setText(getname);
number.setText(getnumber);
cursor.close();
db.close();
}
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.select, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Select.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="com.example.txl.MainActivity" >
<TextView
android:id="@+id/t_selecttxl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="查詢通訊錄名單"
android:textSize="30sp" />
<LinearLayout
android:id="@+id/layoutselect"
android:layout_below="@+id/t_selecttxl"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="輸入需要查詢的姓名:"
android:textSize="20sp"/>
<EditText
android:id="@+id/e_selectname2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutname"
android:layout_below="@+id/layoutselect"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓 名:"
android:textSize="20sp"/>
<TextView
android:id="@+id/t_selectname2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="名稱示例"
android:textSize="20sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutnumber"
android:layout_below="@+id/layoutname"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="號 碼:"
android:textSize="20sp"/>
<TextView
android:id="@+id/t_selectnumber2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="號碼示例"
android:textSize="20sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutselectbutton"
android:layout_below="@+id/layoutnumber"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<Button
android:id="@+id/b_selectqueding2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查詢"/>
<Button
android:onClick="selectfanhui"
android:id="@+id/b_selectfanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
</LinearLayout>
</RelativeLayout>
AddActivity.java
package com.example.txl;
import com.itheima.person.PersonSQLiteOpenHelper;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AddActivity extends Activity {
String sname;
String snumber;
private PersonSQLiteOpenHelper person;
private EditText name;
private EditText number;
private Button queding;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add);
person=new PersonSQLiteOpenHelper(this);
name=(EditText) findViewById(R.id.e_select_name);
number=(EditText) findViewById(R.id.e_select_number);
queding=(Button) findViewById(R.id.b_selectqueding);
queding.setOnClickListener(new queding());
}
//返回響應
public void selectfanhui(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
//確定響應事件
private class queding implements OnClickListener{
public void onClick(View v) {
sname=name.getText().toString().trim();
snumber=number.getText().toString().trim();
SQLiteDatabase db=person.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("name",sname);
values.put("number",snumber);
db.insert("person",null, values);
db.close();
Toast.makeText(AddActivity.this,"成功插入資料",0).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.add, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item); }}
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"
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="com.example.txl.MainActivity" >
<TextView
android:id="@+id/t_addtxl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="增加通訊錄名單"
android:textSize="30sp" />
<LinearLayout
android:id="@+id/layoutname"
android:layout_below="@+id/t_addtxl"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓 名:"
android:textSize="20sp"/>
<EditText
android:id="@+id/e_select_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutnumber"
android:layout_below="@+id/layoutname"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="號 碼:"
android:textSize="20sp"/>
<EditText
android:id="@+id/e_select_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutselectbutton"
android:layout_below="@+id/layoutnumber"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<Button
android:id="@+id/b_selectqueding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="確定"/>
<Button
android:onClick="selectfanhui"
android:id="@+id/b_selectfanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
</LinearLayout>
</RelativeLayout>
XiugaiActivity.java
package com.example.txl;
import com.itheima.person.PersonSQLiteOpenHelper;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class XiugaiActivity extends Activity {
private PersonSQLiteOpenHelper person;
private EditText name;
private EditText number;
private String sname;
private String snumber;
private Button queding;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xiugai);
person=new PersonSQLiteOpenHelper(this);
name=(EditText) findViewById(R.id.e_xiugai_name);
number=(EditText) findViewById(R.id.e_xiugai_number);
queding=(Button) findViewById(R.id.b_xiugaiqueding);
queding.setOnClickListener(new queding());
}
//返回響應
public void xiugaifanhui(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
//修改響應
private class queding implements OnClickListener{
@Override
public void onClick(View v) {
snumber=number.getText().toString().trim();
sname=name.getText().toString().trim();
db=person.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("number",snumber);
db.update("person",values, "name=?",new String[]{sname});
db.close();
Toast.makeText(XiugaiActivity.this,"成功修改"+sname+"的資料",0).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.xiugai, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Xiugai.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="com.example.txl.MainActivity" >
<TextView
android:id="@+id/t_xiugaitxl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="修改通訊錄名單"
android:textSize="30sp" />
<LinearLayout
android:id="@+id/layoutname"
android:layout_below="@+id/t_xiugaitxl"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="需要修改物件的姓名:"
android:textSize="20sp"/>
<EditText
android:id="@+id/e_xiugai_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutnumber"
android:layout_below="@+id/layoutname"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改物件的電話號碼:"
android:textSize="20sp"/>
<EditText
android:id="@+id/e_xiugai_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutselectbutton"
android:layout_below="@+id/layoutnumber"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<Button
android:id="@+id/b_xiugaiqueding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改"/>
<Button
android:onClick="xiugaifanhui"
android:id="@+id/b_selectfanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
</LinearLayout>
</RelativeLayout>
DelectActivity.java
package com.example.txl;
import com.itheima.person.PersonSQLiteOpenHelper;
import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class DelectActivity extends Activity {
private EditText name;
private Button queding;
private PersonSQLiteOpenHelper person;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.delect);
person=new PersonSQLiteOpenHelper(this);
name=(EditText) findViewById(R.id.e_delect_name);
queding=(Button) findViewById(R.id.b_delectqueding);
queding.setOnClickListener(new queding());
}
//返回響應
public void delectfanhui(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
//刪除響應
private class queding implements OnClickListener{
@Override
public void onClick(View v) {
String sname=name.getText().toString().trim();
SQLiteDatabase db=person.getWritableDatabase();
int number=db.delete("person", "name=?", new String[]{sname});
db.close();
Toast.makeText(DelectActivity.this,"成功刪除"+sname+"的資料",0).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.delect, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Delect.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="com.example.txl.MainActivity" >
<TextView
android:id="@+id/t_delecttxl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="刪除通訊錄名單"
android:textSize="30sp" />
<LinearLayout
android:id="@+id/layoutname"
android:layout_below="@+id/t_delecttxl"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="請輸入您需要刪除的通訊錄姓名:"
android:textSize="18sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutdelect"
android:layout_below="@+id/layoutname"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/e_delect_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutdelectbutton"
android:layout_below="@+id/layoutdelect"
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<Button
android:id="@+id/b_delectqueding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="刪除"/>
<Button
android:onClick="delectfanhui"
android:id="@+id/b_selectfanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
</LinearLayout>
</RelativeLayout>