android数据库SQLite(2)

来源:互联网 发布:linux hello world 编辑:程序博客网 时间:2024/06/01 08:17

一个简单的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;
}
}


0 0
原创粉丝点击