Android图书馆管理

  • boxboy
    了解作者
  • Java
    开发工具
  • 221.7KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-06-30 20:55
    上传日期
网上图书馆管理的简单模板,可进行图书删减
exp08_2-master.zip
内容介绍
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(); } }
评论
    相关推荐
    • 代码行 统计 工具
      非常棒的 代码行统计工具,自带20多种类型代码行统计,有c, java ,vb等,还可以自行添加自定义代码类型,如 vbs,abc类型
    • 代码行统计工具
      代码统计分析工具,支持30多种代码格式。能够统计包括:代码行数、注释、空行、文件大小等数据。另外,还支持对软件开发项目的各个开发阶段的工数、成本、质量指标等进行分析和预测。是程序开发人员的必备工具。
    • delphi代码行统计
      delphi代码行统计,可以统计整个工程,非常适用,附带了源代码,可以根据需要增加功能。
    • 代码行统计工具
      帮助统计各种编程语言下源代码的行数,快速统计工作量。
    • 代码行统计工具
      代码行统计工具,支持统计c/c++,。net,php,java,vb,html,js等各种语言的代码行统计。
    • 代码行统计工具
      可以统计各种源文件代码行,包括C,C++,JAVA,C#,HTML,XML,JSP等等
    • 代码行统计工具
      可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
    • 代码行统计工具
      析出程序中代码行、注释行和空白行的行数。程序会自动根 据你选择的文件类型选择相应的统计方式,并将所有文件的 分析结果进行汇总,便于方便直观的对软件项目的代码量进 行全面的评估。本软件是绿色软件,不需要...
    • maven统计代码行插件
      一个统计代码行的maven插件(会统计配置的后缀类型,统计代码行数,并统计.java文件的 代码行数 注释行数 空白行数 .. 输出结果如) [INFO] \src\main\java总行数 : 6511 lines of code in 63 files [INFO] \src\test\...
    • 代码行统计工具
      非常好用的代码行统计工具,功能非常强大,可以统计目前已知的所有语言,并带有灵活的规则,想怎么统计就怎么统计。