您的位置:首页 > 移动开发 > Android开发

android数据库SQLite(2)

2016-04-10 10:51 351 查看
一个简单的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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: