package com.example.anzhuo;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import com.example.dao.D_Book;
import com.example.model.M_Book;
public class SampleListViewActivity extends Activity {
private ListView list_view;
private ArrayAdapter<M_Book> adapter;
private SQLiteDatabase database;
private ArrayList<M_Book> list = new ArrayList<M_Book>();
private int SelectedId;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_sample_listview);
Button btn_into_insert_page = (Button) this.findViewById(R.id.btn_into_insert_page);
btn_into_insert_page.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent=new Intent(SampleListViewActivity.this,ReadBaseActivity.class);
startActivityForResult(intent, 9000);
}});
list_view = (ListView) this.findViewById(R.id.list_view);
getData();
adapter = new ArrayAdapter<M_Book>(this, android.R.layout.simple_expandable_list_item_1, list);
list_view.setAdapter(adapter);
list_view.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int index,long arg3) {
// TODO Auto-generated method stub
// SelectedId = list.get(index).getId();
// Toast.makeText(SampleListViewActivity.this, "我点击了ID为"+ list.get(index).getId() +"的数据 书名是:"+list.get(index).getBookName(), 1000).show();
// //调用一个对话框
// delete(SelectedId);
// getData();
// adapter.notifyDataSetChanged();
final int position = index;
//这个数组, 决定了都有那些可以操作项
final String[] items ={"详细资料", "删除", "取消","编辑"};
//实例化一个对话框的对象。 建了一个新变量
AlertDialog.Builder dialog = new AlertDialog.Builder(SampleListViewActivity.this);
//设置对话框的标题
dialog.setTitle("目录");
//设置数组到对话框中。 并监听点击事件!
dialog.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int index){
final M_Book book = list.get(position);
if(index==0){
Intent intent=new Intent(SampleListViewActivity.this,ReadBaseActivity.class);
intent.putExtra("guid", book.getId()+"");
startActivityForResult(intent, 9000);
// public Person find(int id){
// SQLiteDatabase db =dbOpenHelper.geteadableDatabase();
// Cursor cursor=db.rawQuery("select"from person where personid=?),new String[](String.valueOf(id));
// if(cursor.moveToFirst()){
// int personid = cursor.getInt(cursor.getColumnIndex("personid"));
// String bookName = cursor.getString(cursor.getColumnIndex("bookName"));
// float price = cursor.getString(cursor.getColumnIndex(price));
// int pageNumber = cursor.getString(cursor.getColumnIndex(pageNumber));
// String author = cursor.getString(cursor.getColumnIndex("author"));
// }
// cursor.close();
// return null;
// }
// Toast.makeText(SampleListViewActivity.this, "我单击了"+s, 1000).show();
}else if(index==1){
Dialog deleteDialog=new AlertDialog.Builder(SampleListViewActivity.this)
.setTitle("删除菜单")
.setIcon(R.drawable.ic_launcher)
.setMessage("确认删除吗?")
//相当于点击确认按钮
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// SampleListViewActivity.this.mytxt.setText("删除成功");
//数据删除
delete(book.getId());
//view删除
list.remove(position);
adapter.notifyDataSetChanged();
}
})
//相当于点击取消按钮
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
// SampleListViewActivity.this.mytxt.setText("取消删除");
}
})
.create();
deleteDialog.show();
//Toast.makeText(MainActivity.this, "我单击了删除按钮", 1000).show();
}else if(index==2){
// Toast.makeText(SampleListViewActivity.this, "我单击了取消按钮", 1000).show();
}
}
});
//建立这个对话框
dialog.create();
//现实这个对画框
dialog.show();
}});
}
private void getData() {
//先建立一个list对象用来放数据
list.clear();
D_Book dao = new D_Book();
list = (ArrayList<M_Book>) dao.getBookList();
// //获取SDCARD的路径
// String sdcardpath = Environment.getExternalStorageDirectory().getAbsolutePath();
// //设置数据库路径
// final String myDbPath = sdcardpath+"/mydb.db";
// //获取数据库对象
// database = SQLiteDatabase.openOrCreateDatabase(myDbPath, null);
// //通过查询语句将数据放到游标中
//
// Cursor cursor = database.query("book", new String[]{"id","bookName"}, null, null, null, null, "id desc");
Cursor cursor = database.query("book", new String[]{"id","bookName"}, "id=?", new String[]{"100"}, null, null, null);
Cursor cursor = database.query("book", new String[]{"id","bookName"}, "bookName like ? and price>?", new String[]{"%JAVA%","100"}, null, null, " price desc ");
// //循环 把游标里的数据放到奥list中
// while(cursor.moveToNext()){
// String bookName = cursor.getString(cursor.getColumnIndex("bookName"));
// int id = cursor.getInt(cursor.getColumnIndex("id"));
// M_Book book = new M_Book();
// book.setId(id);
// book.setBookName(bookName);
// list.add(book);
// }
// cursor.close();
// database.close();
}
private void delete(int model){
list.clear();
D_Book d = new D_Book();
d.delete(model);
// //获取SDCARD的路径
// String sdcardpath = Environment.getExternalStorageDirectory().getAbsolutePath();
// //设置数据库路径
// final String myDbPath = sdcardpath+"/mydb.db";
// //获取数据库对象
// database = SQLiteDatabase.openOrCreateDatabase(myDbPath, null);
// database.delete("book", "id=?", new String[]{id+""});
// database.close();
Toast.makeText(SampleListViewActivity.this, "删除成功!",1000).show();
}
// private void update(Person person){
// SQLiteDatabase db=helper.getWritableDatabase();
// //创建SQl字符串
// String sqlStr="update person set bookname=?,price=?pageNumber=?author=?";
// //执行SQL语句
// database.execSQL(sqlStr, new Object[]{person.getbookname(),person.getprice(),person.getpageNumber(),person.getauthor});
// //关闭数据库
// database.close();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 9000:{
if(resultCode==RESULT_OK){
getData();
adapter.notifyDataSetChanged();
}
}
}
}
// }
}
package com.example.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import com.example.model.M_Book;
public class D_Book {
SQLiteDatabase db;
public D_Book(){
System.out.println("运行了构造函数");
}
//find(4) id='id' id='4'
/**
* 通过ID找到一本输
* @param id 书刊的编号
* @return 书的model
*/
public M_Book findBookById(int id){
db = DBHelper.getDatabase();
M_Book b =new M_Book();
String[] shu = {"id","bookName","price","pageNumber","author"};
String[] selectionArgs = {id+""};
//b赋值]
String table = "book";
Cursor cursor=db.query(table, shu, "id=?", selectionArgs, null, null, null);
if (cursor.moveToNext()) {
b.setId(Integer.valueOf(cursor.getString(0)));
b.setBookName(cursor.getString(1));
b.setPrice(Float.valueOf(cursor.getString(2)));
b.setPageNumber(Integer.valueOf(cursor.getString(3)));
b.setAuthor(cursor.getString(4));
}else{
b=null;
}
cursor.close();
db.close();
return b;
//SELECT * FROM book WHERE id = id
}
public void add(M_Book model){
//INSERT INTO book VALUES ('测试内容','测试内容','测试内容','测试内容')
db = DBHelper.getDatabase();
ContentValues values = new ContentValues();
// values.put("id",001);
values.put("bookName", model.getBookName());
values.put("price", model.getPrice());
values.put("pageNumber", model.getPageNumber());
values.put("author", model.getAuthor());
db.insert("book",null, values);
db.close();
}
public void update(M_Book model) {
//UPDATE book SET price = 99 WHERE bookName ='测试内容'
// TODO Auto-generated method stub
db = DBHelper.getDatabase();
ContentValues values = new ContentValues();
// values.put("id",001);
values.put("bookName", model.getBookName());
values.put("price", model.getPrice());
values.put("pageNumber", model.getPageNumber());
values.put("author", model.getAuthor());
db.update("book", values, "id=?", new String[]{model.getId()+""});
db.close();
}
public void delete(int model){
//DELETE FROM book WHERE pageNumber ='测试内容'
db = DBHelper.getDatabase();
db.delete("book", "id=?", new String[]{model+""});
db.close();
}
/**
* 获取所有书刊的列表
* @return 一个list类型
*/
public List<M_Book> getBookList() {
db = DBHelper.getDatabase();
List<M_Book> bookList = new ArrayList<M_Book>();
// TODO Auto-generated method stub
Cursor cursor = db.query("book", new String[]{"id","bookName","price","pageNumber","author"}, null, null, null, null, "id desc");
// Cursor cursor = database.query("book", new String[]{"id","bookName"}, "id=?", new String[]{"100"}, null, null, null);
// Cursor cursor = database.query("book", new String[]{"id","bookName"}, "bookName like ? and price>?", new String[]{"%JAVA%","100"}, null, null, " price desc ");
//循环 把游标里的数据放到奥list中
while(cursor.moveToNext()){
String bookName = cursor.getString(1);
float price = cursor.getFloat(2);
int id = cursor.getInt(0);
String author = cursor.getString(4);
int pageNumber = cursor.getInt(3);
M_Book book = new M_Book();
book.setId(id);
book.setBookName(bookName);
book.setPrice(price);
book.setPageNumber(pageNumber);
book.setAuthor(author);
bookList.add(book);
}
cursor.close();
db.close();
return bookList;
}
}
package com.example.dao;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
public class DBHelper {
public static SQLiteDatabase getDatabase(){
String sdcardpath = Environment.getExternalStorageDirectory().getAbsolutePath();
String myDbPath = sdcardpath + "/mydb.db";
SQLiteDatabase sdb = SQLiteDatabase.openOrCreateDatabase(myDbPath, null);
return sdb;
}
}