package com.example.exp08_2;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class MainActivity extends Activity {
private ListView booklist;
private EditText nameEt;
private EditText priceEt;
private EditText categoryEt;
private Cursor cursor;
private Context context;
private Button downPage;// 下一页
private Button upPage;// 上一页
private SimpleCursorAdapter adapter;
//设定页数条件,必须成员变量
private int i = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
context = this;
initViews();// 初始化组件
// 根据游标查询数据,查的是,前十条数据
cursor = new DBUtils(context).query(0, 10);
// 3. 游标适配器,记住是游标适配器,而不是简单适配器
adapter = new SimpleCursorAdapter(this, R.layout.item_list, cursor,
new String[] { DBUtils.ID, DBUtils.NAME,DBUtils.CATEGORY, DBUtils.PRICE,
DBUtils.ID }, new int[] { R.id.id_tv, R.id.name_tv,R.id.category_tv,
R.id.price_tv, R.id.delet_tv });
// 设置适配器,展出数据
booklist.setAdapter(adapter);
// 下一页
downPage.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// 获取总页数
DBUtils db = new DBUtils(context);
int page = db.pageNum();
i = i + 1;
// 判断
if (i > page) {
i = page;
}
// 根据游标查询数据
cursor = new DBUtils(context).query(i * 10, 10);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(context,
R.layout.item_list, cursor, new String[] { DBUtils.ID,
DBUtils.NAME,DBUtils.CATEGORY, DBUtils.PRICE,
DBUtils.ID }, new int[] { R.id.id_tv,
R.id.name_tv,R.id.category_tv, R.id.price_tv, R.id.delet_tv });
booklist.setAdapter(adapter);
}
});
// 上一页
upPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i = i - 1;
if (i < 0) {
i = 0;
}
// 根据游标查询数据
cursor = new DBUtils(context).query(i * 10, 10);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(context,
R.layout.item_list, cursor, new String[] { DBUtils.ID,
DBUtils.NAME,DBUtils.CATEGORY, DBUtils.PRICE,
DBUtils.ID }, new int[] { R.id.id_tv,
R.id.name_tv,R.id.category_tv, R.id.price_tv, R.id.delet_tv });
booklist.setAdapter(adapter);
}
});
// 长按删除,监听每一项列表项
booklist.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
DBUtils dbUtils = new DBUtils(context);
// long id表示数据库中的id
dbUtils.delete((int) id);
// 重新查询
cursor.requery();
// 更新數據,展示数据
adapter.notifyDataSetChanged();
return false;
}
});
}
/**
* 初始化组件
*/
private void initViews() {
booklist = (ListView) findViewById(R.id.list);
nameEt = (EditText) findViewById(R.id.name_et);
priceEt = (EditText) findViewById(R.id.price_et);
categoryEt = (EditText) findViewById(R.id.category_et);
downPage = (Button) findViewById(R.id.downPage);
upPage = (Button) findViewById(R.id.upPage);
}
/**
* 添加事件
*/
public void add(View v) {
//获取输入框的值
String nameValue = nameEt.getText().toString().trim();
String categoryValue = categoryEt.getText().toString().trim();
String priceValue = priceEt.getText().toString().trim();
DBUtils dbUtils = new DBUtils(context);
//创建ContentValues对象,用这个插入数据,和更新数据
ContentValues values = new ContentValues();
values.put(dbUtils.NAME, nameValue);
values.put(dbUtils.CATEGORY,categoryValue);
values.put(dbUtils.PRICE, priceValue);
dbUtils.save(values);
// 重新查询,显示
cursor.requery();
// 更新數據
adapter.notifyDataSetChanged();
//保存之后,输入框为空
nameEt.setText(null);
categoryEt.setText(null);
priceEt.setText(null);
}
/**
* 删除事件,
*/
public void delete(View v) {
TextView textView = (TextView) v;
//传id,在游标适配哪里也要设置
String id = textView.getText().toString();
DBUtils dbUtils = new DBUtils(context);
// long id表示数据库中的id
int a = Integer.valueOf(id);
dbUtils.delete(a);
// 重新查询
cursor.requery();
// 更新數據
adapter.notifyDataSetChanged();
}
}