当前位置: 首页 > news >正文

【安卓9】SimpleCursorAdapter、在列表中展示数据

SimpleCursorAdapter

SimpleCursorAdaper与SimpleAdapter类似,但数据来源是Cursor。

操作步骤:

 

在列表中展示数据

 1 public MySQLiteOpenHelper(Context context) {
 2      super(context,"person.db",null,1);
 3 }
 4 public void onCreate(SQLiteDatabase db) {
 5     db.execSQL("create table if not exists person(" 
 6         +"_id integer primary key autoincrement,"
 7         +"name varchar(20)");
 8 }
 9 /**    查询方法
10   * @return Cursor对象
11   */
12  public  Cursor  query(){
13     SQLiteDatabase  db=getWritableDatabase();
14     Cursor cursor=db.query("person", new String[]{"id _id ","name"}, null, null, null, null, null);
15     return cursor;
16  }
17 /**向数据库插入数据*/
18     public void insert(String [] args){
19         SQLiteDatabase db=this.getWritableDatabase();
20         //该对象可操作键-值对数据
21         ContentValues values=new ContentValues();
22         values.put("name",args[0]);//存放数据
23         //表名,强行插入null值得数据列的列名,记录数据
24         db.insert("person",null,values);
25     } 
MySQLiteOpenHelper代码
 1 Activity代码
 2 public class Main extends Activity implements OnClickListener{
 3 private  Button  addBtn;
 4 private  Button  findBtn;
 5 private  EditText nameEt;
 6 private  EditText phoneEt;
 7 private  ListView listView;
 8 private  SimpleCursorAdapter  adapter;
 9 private  MySQLiteOpenHelper  helper;
10     public void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.main);
13         addBtn=(Button)findViewById(R.id.addBtn);
14         findBtn=(Button)findViewById(R.id.findBtn);
15         nameEt=(EditText)findViewById(R.id.nameEt);
16         phoneEt=(EditText)findViewById(R.id.phoneEt);
17         listView=(ListView)findViewById(R.id.lv);
18         addBtn.setOnClickListener(this);
19         findBtn.setOnClickListener(this);
20 
21         helper=new MySQLiteOpenHelper(this);
22         Cursor  cursor=helper.query();
23         adapter=new SimpleCursorAdapter(this,R.layout.list_item, 
24         cursor,new String[]{"_id","name","phone"},
25         new int[]{R.id.idTv,R.id.nameTv,R.id.phoneTv});
26         listView.setAdapter(adapter);
27     } 
28 public void onClick(View v) {
29     MySQLiteOpenHelper  db=new MySQLiteOpenHelper(Main.this);
30     switch(v.getId()){
31     case R.id.addBtn:
32         String  name=nameEt.getText().toString();
33         String  phone=phoneEt.getText().toString();
34         db.insert(new String[]{name,phone});
35         Toast.makeText(this,"插入成功",3000).show();
36     break;
37    case R.id.findBtn:
38            Cursor  cur=helper.query();
39            adapter.changeCursor(cur);//更新游标适配器对象
40            adapter.notifyDataSetChanged();//通知列表控件数据发生改变
41     break;
42 }
Activity 代码

 

转载于:https://www.cnblogs.com/leelee/p/7045158.html

相关文章:

  • 查看windows进程,并删除
  • 阿里云上部署开源PaaS平台Cloud Foundry实战
  • 页码生成算法
  • C++内联函数
  • 收缩数据文件
  • Flask 扩展 表单
  • openfalcon-0.2 配置
  • elasticsearch从入门到出门-08-Elasticsearch容错机制:master选举,replica容错,数据恢复...
  • [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面
  • border:none;和border:0;的区别
  • win server2012 r2 服务器共享文件夹设置
  • 页头开发
  • mysql主从同步(5.1版本)
  • 51nod 1421 最大MOD值
  • R语言-排序
  • @angular/forms 源码解析之双向绑定
  • 【mysql】环境安装、服务启动、密码设置
  • Angular 4.x 动态创建组件
  • docker-consul
  • EventListener原理
  • JavaScript异步流程控制的前世今生
  • Redis 中的布隆过滤器
  • spring security oauth2 password授权模式
  • vagrant 添加本地 box 安装 laravel homestead
  • VuePress 静态网站生成
  • 不上全站https的网站你们就等着被恶心死吧
  • 基于 Babel 的 npm 包最小化设置
  • 力扣(LeetCode)21
  • 数组的操作
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • AI算硅基生命吗,为什么?
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​马来语翻译中文去哪比较好?
  • ​人工智能书单(数学基础篇)
  • ###C语言程序设计-----C语言学习(3)#
  • $(selector).each()和$.each()的区别
  • %check_box% in rails :coditions={:has_many , :through}
  • (9)目标检测_SSD的原理
  • (arch)linux 转换文件编码格式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Forward) Music Player: From UI Proposal to Code
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (学习日记)2024.01.09
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)jdk与jre的区别
  • (转)项目管理杂谈-我所期望的新人
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .md即markdown文件的基本常用编写语法
  • .NET连接MongoDB数据库实例教程
  • .Net中ListT 泛型转成DataTable、DataSet
  • .stream().map与.stream().flatMap的使用
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——