一个简单的sqlite数据库添加与查看案例;
第一步:写布局文件。
(1)activity_main.xml中代码如下:
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/etNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入运单号"
/>
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入公司"
/>
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确定"
android:onClick="add"
/>
<Button
android:id="@+id/btnlook"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查看"
android:onClick="look"
/>
</LinearLayout>
(2)activity_show.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=".ShowActivity" >
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></ListView>
</RelativeLayout>
(3)show_item.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tvName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="name"
/>
<TextView
android:id="@+id/tvNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="number"
/>
</LinearLayout>
第二步:
java代码如下:
(4)写一个MyDBHelper.java类:
public class MyDBHelper extends SQLiteOpenHelper{
public MyDBHelper(Context context) {
super(context,"recode.db", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
//create table com(id integer primary key autoincrement,name varchar(20),number varchar(20))";
String sql="create table com (id integer primary key autoincrement,name varchar(20),number varchar(20))";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
(5)写一个数据库的操作类ComDao.java:
public class ComDao {
private MyDBHelper mMyDBHelper;
public ComDao(Context context) {
mMyDBHelper=new MyDBHelper(context);
}
public long addDate(String name,String number){
// 增删改查每一个方法都要得到数据库,然后操作完成后一定要关闭
// getWritableDatabase(); 执行后数据库文件才会生成
// 数据库文件利用DDMS可以查看,在 data/data/包名/databases 目录下即可查看
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("name",name);
contentValues.put("number", number);
// 返回,显示数据添加在第几行
// 加了现在连续添加了3行数据,突然删掉第三行,然后再添加一条数据返回的是4不是3
// 因为自增长
long rowid=sqLiteDatabase.insert("com",null,contentValues);
sqLiteDatabase.close();
return rowid;
}
// 删除的方法,返回值是int
public int deleteDate(String name){
SQLiteDatabase sqLiteDatabase = mMyDBHelper.getWritableDatabase();
int deleteResult = sqLiteDatabase.delete("com", "name=?", new String[]{name});
sqLiteDatabase.close();
return deleteResult;
}
}
(6)MainActivity.java代码如下:
public class MainActivity extends Activity {
private EditText number;
private EditText name;
private String comNumber;
private String comName;
private ComDao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number = (EditText) findViewById(R.id.etNumber);
name = (EditText) findViewById(R.id.etName);
dao = new ComDao(MainActivity.this);
}
public void add(View v)
{
comNumber = number.getText().toString().trim();
comName = name.getText().toString().trim();
if(TextUtils.isEmpty(comNumber)||TextUtils.isEmpty(comName)){
Toast.makeText(MainActivity.this,"数据不能为空。。。",Toast.LENGTH_SHORT).show();
}else{
dao.addDate(comName, comNumber);
Toast.makeText(MainActivity.this,"添加成功...",Toast.LENGTH_SHORT).show();
}
}
public void look(View v)
{
Intent intent = new Intent(MainActivity.this,ShowActivity.class);
startActivity(intent);
}
}
(7)ShowActivity.java代码如下:
public class ShowActivity extends Activity {
private ListView lv;
private SQLiteDatabase db;
private MyDBHelper mMyDBHelper;
ArrayList<Map<String, Object>> lists;
ComDao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
mMyDBHelper=new MyDBHelper(ShowActivity.this);
db=mMyDBHelper.getWritableDatabase();
dao=new ComDao(ShowActivity.this);
lv = (ListView) findViewById(R.id.lv);
lists = getList();
final SimpleAdapter adapter = new SimpleAdapter(ShowActivity.this,lists,
R.layout.show_item,new String[]{"name","number"},
new int[]{R.id.tvName,R.id.tvNumber});
lv.setAdapter(adapter);
}
public ArrayList<Map<String, Object>> getList() {
ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Cursor c= db.rawQuery("select * from com",null);
while(c.moveToNext()){
Map<String, Object> item = new HashMap<String, Object>();
item.put("name", c.getString(0));
item.put("number", c.getString(1));
list.add(item);
}
c.close();
return list;
}
}