Android SQLiteDatabase数据库, SimpleCursorAdapter, Cursor

来源:互联网 发布:高新区行知小学好不好 编辑:程序博客网 时间:2024/06/14 04:40

这里写图片描述

创建SimpleCursorAdapter 所指定的layout

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <EditText        android:id="@+id/my_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <EditText        android:id="@+id/my_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="shortcut.song.com.myapplication.DBTestActivity">    <Button        android:id="@+id/btn_db"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="DB"/>    <EditText        android:id="@+id/edit_title_db"        android:layout_width="fill_parent"        android:layout_height="wrap_content" />    <EditText        android:id="@+id/edit_content_db"        android:layout_width="fill_parent"        android:layout_height="wrap_content" />    <ListView        android:id="@+id/listview_db"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:divider="#0f25"        android:dividerHeight="1px"/></LinearLayout>
package shortcut.song.com.myapplication;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteException;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CursorAdapter;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class DBTestActivity extends AppCompatActivity {    SQLiteDatabase db;    Button btn = null;    ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_dbtest);        //创建或打开数据库(此处需要使用绝对路经)        db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/my.db3", null);        listView = (ListView)findViewById(R.id.listview_db);        btn = (Button)findViewById(R.id.btn_db);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //获取用户输入                String title = ((EditText)findViewById(R.id.edit_title_db)).getText().toString();                String content = ((EditText)findViewById(R.id.edit_content_db)).getText().toString();                try {                    insertData(db , title , content);                    Cursor cursor = db.rawQuery("select * from news_inf", null);                    inflateList(cursor);                } catch (SQLiteException e) {                    //执行DDL创建数据表                    //执行DDL创建数据表                    db.execSQL("create table news_inf(_id integer primary key autoincrement,"                            + " news_title varchar(50),"                            + " news_content varchar(255))");                    //执行insert语句插入数据                    insertData(db , title , content);                    //执行查询                    Cursor cursor = db.rawQuery("select * from news_inf", null);                    inflateList(cursor);                }            }        });    }    private void insertData(SQLiteDatabase db, String title, String content){        //执行插入语句        //执行插入语句        db.execSQL("insert into news_inf values(null , ? , ?)"                , new String[]{title , content});    }    private void inflateList(Cursor cursor) {        SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(                DBTestActivity.this                ,R.layout.db_line, cursor                ,new String[]{"news_title", "news_content"}                ,new int[]{R.id.my_title, R.id.my_content}                , CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);        listView.setAdapter(simpleCursorAdapter);    }    @Override    protected void onDestroy() {        super.onDestroy();        if (db != null && db.isOpen()) {            db.close();        }    }}

运行效果:

这里写图片描述

阅读全文
0 0