1 package com.example.zhoushasha.sqlitedatabasedemo;2
3 import android.support.v7.app.AppCompatActivity;4 import android.os.Bundle;5 import android.app.Activity;6 import android.content.Context;7 import android.database.Cursor;8 import android.os.Bundle;9 import android.view.Menu;10 import android.view.MenuItem;11 import android.view.View;12 import android.view.ViewGroup;13 import android.widget.AdapterView;14 import android.widget.BaseAdapter;15 import android.widget.EditText;16 import android.widget.ListView;17 import android.widget.TextView;18 import android.widget.Toast;19 public classMainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {20 privateBooksDB mBooksDB;21 privateCursor mCursor;22 privateEditText BookName;23 privateEditText BookAuthor;24 privateListView BooksList;25
26 private int BOOK_ID = 0;27 protected final static int MENU_ADD =Menu.FIRST;28 protected final static int MENU_DELETE = Menu.FIRST + 1;29 protected final static int MENU_UPDATE = Menu.FIRST + 2;30
31 public voidonCreate(Bundle savedInstanceState) {32 super.onCreate(savedInstanceState);33 setContentView(R.layout.layout);34 setUpViews();35 }36
37 public voidsetUpViews() {38 mBooksDB = new BooksDB(this);39 mCursor = mBooksDB.select();40
41 BookName =(EditText)findViewById(R.id.bookname);42 BookAuthor =(EditText) findViewById(R.id.author);43 BooksList =(ListView) findViewById(R.id.bookslist);44
45 BooksList.setAdapter(new BooksListAdapter(this, mCursor));46 BooksList.setOnItemClickListener(this);47 }48
49 @Override50 publicboolean onCreateOptionsMenu(Menu menu) {51 super.onCreateOptionsMenu(menu);52
53 menu.add(Menu.NONE, MENU_ADD, 0, "ADD");54 menu.add(Menu.NONE, MENU_DELETE, 0, "DELETE");55 menu.add(Menu.NONE, MENU_DELETE, 0, "UPDATE");56 return true;57 }58
59 publicboolean onOptionsItemSelected(MenuItem item) {60 super.onOptionsItemSelected(item);61 switch(item.getItemId()) {62 caseMENU_ADD:63 add();64 break;65 caseMENU_DELETE:66 delete();67 break;68 caseMENU_UPDATE:69 update();70 break;71 }72 return true;73 }74
75 public voidadd() {76 String bookname =BookName.getText().toString();77 String author =BookAuthor.getText().toString();78 //书名和作者都不能为空,或者退出
79 if (bookname.equals("") || author.equals("")) {80 return;81 }82 mBooksDB.insert(bookname, author);83 mCursor.requery();84 BooksList.invalidateViews();85 BookName.setText("");86 BookAuthor.setText("");87 Toast.makeText(this, "Add Successed!", Toast.LENGTH_SHORT).show();88 }89
90 public voiddelete() {91 if (BOOK_ID == 0) {92 return;93 }94 mBooksDB.delete(BOOK_ID);95 mCursor.requery();96 BooksList.invalidateViews();97 BookName.setText("");98 BookAuthor.setText("");99 Toast.makeText(this, "Delete Successed!", Toast.LENGTH_SHORT).show();100 }101
102 public voidupdate() {103 String bookname =BookName.getText().toString();104 String author =BookAuthor.getText().toString();105 //书名和作者都不能为空,或者退出
106 if (bookname.equals("") || author.equals("")) {107 return;108 }109 mBooksDB.update(BOOK_ID, bookname, author);110 mCursor.requery();111 BooksList.invalidateViews();112 BookName.setText("");113 BookAuthor.setText("");114 Toast.makeText(this, "Update Successed!", Toast.LENGTH_SHORT).show();115 }116
117 @Override118 public void onItemClick(AdapterView> parent, View view, int position, longid) {119
120 mCursor.moveToPosition(position);121 BOOK_ID = mCursor.getInt(0);122 BookName.setText(mCursor.getString(1));123 BookAuthor.setText(mCursor.getString(2));124
125 }126
127 public classBooksListAdapter extends BaseAdapter {128 privateContext mContext;129 privateCursor mCursor;130
131 publicBooksListAdapter(Context context, Cursor cursor) {132
133 mContext =context;134 mCursor =cursor;135 }136
137 @Override138 public intgetCount() {139 returnmCursor.getCount();140 }141
142 @Override143 public Object getItem(intposition) {144 return null;145 }146
147 @Override148 public long getItemId(intposition) {149 return 0;150 }151
152 @Override153 public View getView(intposition, View convertView, ViewGroup parent) {154 TextView mTextView = newTextView(mContext);155 mCursor.moveToPosition(position);156 mTextView.setText(mCursor.getString(1) + "___" + mCursor.getString(2));157 returnmTextView;158 }159
160 }161 }