标签:des android http io ar os sp java strong
通过SQLiteDatabase 来访问sqlite数据库
----Main.java
public class Main extends Activity {
SQLiteDatabase db;
ListView listView;
EditText editText1, editText2; //要添加的标题和context
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.listView1);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
button = (Button) findViewById(R.id.button1);
// /data/data/com.example.dbtest/files --/my.db3
db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()
+ "/my.db3", null);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String str1 = editText1.getText().toString();
String str2 = editText2.getText().toString();
try {
insertToDB(db, str1, str2);
Cursor cursor = db.rawQuery("select * from news_info",
null);
inflateListView(cursor);
} catch (SQLiteException e) {
db.execSQL("create table news_info(_id integer primary key autoincrement,"
+ "news_title varchar(50),"
+ "news_content varchar(255))");
insertToDB(db, str1, str2);
Cursor cursor = db.rawQuery("selecte * from news_info",
null);
inflateListView(cursor);
}
}
});
}
private void insertToDB(SQLiteDatabase db, String str1, String str2) {
db.execSQL("insert into news_info values(null, ?, ?)", new String[] {
str1, str2 });
}
private void inflateListView(Cursor cursor) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter(Main.this,
R.layout.item, cursor, new String[] { "news_title",
"news_content" }, new int[] { R.id.textView1,
R.id.textView2 },
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
listView.setAdapter(adapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
if(db!=null&&db.isOpen()){
db.close();
}
}
}
SimpleCursorAdapter封装Cursor时,要求数据表的主键列的列名为 _id 。因为SimpleCursorAdapter只能识别 列名为
_id的主键。否则会报错。
同java中的操作JDBC一样,数据库最后也要关闭 db.close(); 来回收资源。
---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="${relativePackage}.${activityClass}" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText2"
android:text="插入数据" />
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button1" >
</ListView>
</RelativeLayout>
listeview 每个子项的布局文件 item.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/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="TextView" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginLeft="20dp" android:layout_toRightOf="@+id/textView1" android:text="TextView" /> </RelativeLayout>
运行效果:

标签:des android http io ar os sp java strong
原文地址:http://my.oschina.net/u/1413857/blog/355172