Android-database

来源:互联网 发布:2015年程序员考试真题 编辑:程序博客网 时间:2024/03/28 17:03

MainActivity

import android.app.Activity;import android.content.Context;import android.database.Cursor;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements AdapterView.OnItemClickListener {    private BooksDB mBooksDB;    private Cursor mCursor;    private EditText BookName;    private EditText BookAuthor;    private ListView BooksList;    private int BOOK_ID = 0;    protected final static int MENU_ADD = Menu.FIRST;    protected final static int MENU_DELETE = Menu.FIRST + 1;    protected final static int MENU_UPDATE = Menu.FIRST + 2;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main );        setUpViews();    }    public void setUpViews(){        mBooksDB = new BooksDB(this);        mCursor = mBooksDB.select();        BookName = (EditText)findViewById(R.id.bookname);        BookAuthor = (EditText)findViewById(R.id.author);        BooksList = (ListView)findViewById(R.id.bookslist);        BooksList.setAdapter(new BooksListAdapter(this, mCursor));        BooksList.setOnItemClickListener(this);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        super.onCreateOptionsMenu(menu);        menu.add(Menu.NONE, MENU_ADD, 0, "ADD");        menu.add(Menu.NONE, MENU_DELETE, 0, "DELETE");        menu.add(Menu.NONE, MENU_DELETE, 0, "UPDATE");        return true;    }    public boolean onOptionsItemSelected(MenuItem item)    {        super.onOptionsItemSelected(item);        switch (item.getItemId())        {            case MENU_ADD:                add();                break;            case MENU_DELETE:                delete();                break;            case MENU_UPDATE:                update();                break;        }        return true;    }    public void add(){        String bookname = BookName.getText().toString();        String author = BookAuthor.getText().toString();//书名和作者都不能为空,或者退出        if (bookname.equals("") || author.equals("")){            return;        }        mBooksDB.insert(bookname, author);        mCursor.requery();        BooksList.invalidateViews();        BookName.setText("");        BookAuthor.setText("");        Toast.makeText(this, "Add Successed!", Toast.LENGTH_SHORT).show();    }    public void delete(){        if (BOOK_ID == 0) {            return;        }        mBooksDB.delete(BOOK_ID);        mCursor.requery();        BooksList.invalidateViews();        BookName.setText("");        BookAuthor.setText("");        Toast.makeText(this, "Delete Successed!", Toast.LENGTH_SHORT).show();    }    public void update(){        String bookname = BookName.getText().toString();        String author = BookAuthor.getText().toString();//书名和作者都不能为空,或者退出        if (bookname.equals("") || author.equals("")){            return;        }        mBooksDB.update(BOOK_ID, bookname, author);        mCursor.requery();        BooksList.invalidateViews();        BookName.setText("");        BookAuthor.setText("");        Toast.makeText(this, "Update Successed!", Toast.LENGTH_SHORT).show();    }    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        mCursor.moveToPosition(position);        BOOK_ID = mCursor.getInt(0);        BookName.setText(mCursor.getString(1));        BookAuthor.setText(mCursor.getString(2));    }    public class BooksListAdapter extends BaseAdapter{        private Context mContext;        private Cursor mCursor;        public BooksListAdapter(Context context,Cursor cursor) {            mContext = context;            mCursor = cursor;        }        @Override        public int getCount() {            return mCursor.getCount();        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            TextView mTextView = new TextView(mContext);            mCursor.moveToPosition(position);            mTextView.setText(mCursor.getString(1) + "___" + mCursor.getString(2));            return mTextView;        }    }}


BooksDB

import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class BooksDB extends SQLiteOpenHelper {    private final static String DATABASE_NAME = "BOOKS.db";    private final static int DATABASE_VERSION = 1;    private final static String TABLE_NAME = "books_table";    public final static String BOOK_ID = "book_id";    public final static String BOOK_NAME = "book_name";    public final static String BOOK_AUTHOR = "book_author";    public BooksDB(Context context) {// TODO Auto-generated constructor stub        super(context, DATABASE_NAME, null, DATABASE_VERSION);    }    //����table    @Override    public void onCreate(SQLiteDatabase db) {        String sql = "CREATE TABLE " + TABLE_NAME + " (" + BOOK_ID                + " INTEGER primary key autoincrement, " + BOOK_NAME + " text, "+ BOOK_AUTHOR +" text);";        db.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;        db.execSQL(sql);        onCreate(db);    }    public Cursor select() {        SQLiteDatabase db = this.getReadableDatabase();        Cursor cursor = db                .query(TABLE_NAME, null, null, null, null, null, null);        return cursor;    }    //���Ӳ���    public long insert(String bookname,String author)    {        SQLiteDatabase db = this.getWritableDatabase();/* ContentValues */        ContentValues cv = new ContentValues();        cv.put(BOOK_NAME, bookname);        cv.put(BOOK_AUTHOR, author);        long row = db.insert(TABLE_NAME, null, cv);        return row;    }    //ɾ������    public void delete(int id)    {        SQLiteDatabase db = this.getWritableDatabase();        String where = BOOK_ID + " = ?";        String[] whereValue ={ Integer.toString(id) };        db.delete(TABLE_NAME, where, whereValue);    }    //�޸IJ���    public void update(int id, String bookname,String author)    {        SQLiteDatabase db = this.getWritableDatabase();        String where = BOOK_ID + " = ?";        String[] whereValue = { Integer.toString(id) };        ContentValues cv = new ContentValues();        cv.put(BOOK_NAME, bookname);        cv.put(BOOK_AUTHOR, author);        db.update(TABLE_NAME, cv, where, whereValue);    }}


activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <EditText        android:id="@+id/bookname"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        >    </EditText>    <EditText        android:id="@+id/author"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        >    </EditText>    <ListView        android:id="@+id/bookslist"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        >    </ListView></LinearLayout>


0 0
原创粉丝点击