ListView显示Sqlite的数据
在安卓中,ListView和Sqlite都是十分常用的。这次我们来结合这个两个知识点写一个Demo。
功能:吧SQLite中的数据用ListView显示出来。
先看截图吧
首先是数据库

然后是运行截图

接下来是讲解,运行程序后,先点击创建数据库的按钮,会创建出50条数据,然后点击查询,会将这50条数据查询并显示在ListView中。
直接看代码吧!
布局文件activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.listviewdemo.MainActivity" > <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="Create_Data"
android:text="创建数据" /> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="Query_Data"
android:text="查询数据" /> <ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
/> </LinearLayout>
java文件
Girl.java
作为javabean,存储数据类用的
package com.example.listviewdemo;
public class Girl {
private String name;
private int age;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return name+","+age+","+phone;
}
public Girl(String name, int age, String phone) {
super();
this.name = name;
this.age = age;
this.phone = phone;
}
}
MainActivity.java
package com.example.listviewdemo; import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { private MyOpenSqlHelp myDatebaseHelper;
List<Girl> girList ; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myDatebaseHelper = new MyOpenSqlHelp(this, "People.db", null, 1);
SQLiteDatabase db = myDatebaseHelper.getWritableDatabase();
girList = new ArrayList<Girl>();
} public void Create_Data(View v) {
SQLiteDatabase db = myDatebaseHelper.getWritableDatabase(); for(int i=0;i<=50;i++){
ContentValues values = new ContentValues();
values.put("Name", "朱主爱"+i);
values.put("Age", "19");
values.put("Phone", "135708"+i);
db.insert("Girl", null, values);
}
Toast.makeText(this, "数据创建成功", 0).show();
} public void Query_Data(View v) {
SQLiteDatabase db = myDatebaseHelper.getWritableDatabase();
Cursor cursor = db.query("Girl", null, null, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("Name"));
int age = cursor.getInt(cursor.getColumnIndex("Age"));
String phone = cursor.getString(cursor.getColumnIndex("Phone")); Girl girl =new Girl(name,age,phone);
girList.add(girl); }
//拿到listveiw对象
ListView lv = (ListView) findViewById(R.id.lv);
//设置适配器
lv.setAdapter(new MyAapter()); }
//适配器类
class MyAapter extends BaseAdapter { //获取集合中有多少条元素,由系统调用
@Override
public int getCount() {
// TODO Auto-generated method stub
return girList.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} //由系统调用,返回一个view对象作为listview的条目
/*
* position:本次getView方法调用所返回的view对象在listView中处于第几个条目,position的值就为多少
* */
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(MainActivity.this);
tv.setTextSize(18);
//获取集合中的元素
Girl girl = girList.get(position);
tv.setText(girl.toString()); return tv;
} } }
MyOpenSqlHelp.java
数据库帮助器,要用sqlite数据库必须创建的类
package com.example.listviewdemo; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast; public class MyOpenSqlHelp extends SQLiteOpenHelper{ public static final String CREATE_GIRL = "create table Girl(_id integer primary key autoincrement,Name char(20),Age integer,Phone char(20))" ;
private Context mContext;
public MyOpenSqlHelp(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
mContext = context ;
} @Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(CREATE_GIRL);
/*Toast.makeText(mContext,"Create Successded",0).show();*/
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub } }
ListView显示Sqlite的数据的更多相关文章
- ListView显示Sqlite的数据美化版与性能优化
在上一篇文章中,我们已经实现在listview显示数据库内容的.但是我们listview中,排版不是很好看,所以这篇文章呢,我们来对listveiw进行美化.哈哈,说白了,就是对listview添加一 ...
- 如何用listview显示服务端数据
https://www.cnblogs.com/caobotao/p/5061627.html
- Android整理:SQlite数据库的使用以及通过listView显示数据
前言:上个月与同学一起做了一个简单的Android应用,这段时间正好没有很多事情所以趁热整理一下学习到的知识,刚开始学习Android还有很多不懂的地方,继续努力吧! 作业中需要用到数据库,当然首选A ...
- Android_(控件)使用ListView显示Android系统中联系人信息
使用ListView显示手机中联系人的姓名和电话号码 父类布局activity_main.xml,子类布局line.xml(一个文件的单独存放) 运行截图: (避免泄露信息对部分地方进行了涂鸦O(∩_ ...
- android实例 listview与sqlite数据绑定
ListView与Sqlite数据库绑定步骤: 1.将Sqlite数据库的内容查询出来并放入数组列表中,形成ListView的数据源: 2.适配器绑定数据源,显示在ListView item中. 本文 ...
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
使用Listview的时候: 当要动态显示更改后的数据(例如数据库改动), 很多人应该都用过notifyDataSetChanged();这个方法来刷新Listview,显示改后的数据. 这时候就要注 ...
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...
- Windows程序==>>使用ListView控件展示数据
使用ListView控件展示数据 01.ImageList控件 1.了解了解 属性 说明 Images 储存在图像列表中的所有图像 ImageSize 图像列表中图像的大小 Trans ...
- Android 一键直接查看Sqlite数据库数据
转自:http://www.cnblogs.com/trinea/archive/2012/11/16/2773656.html 本文主要介绍Android开发中如何一键直接查看sqlite数据库中的 ...
随机推荐
- 基于组的策略(GBP)开启新型网络设计时代
在传统物理网络环境下,划分VLAN,分配网段,设置路由是个网工应该熟悉的内容.在SDN环境下,比如neutron虚拟网络,我们用API创建网络,子网,虚拟路由器,负载均衡和防火墙,这些还是太网络化了. ...
- JavaScript 正则表达收集整理
JavaScript 正则表达收集整理 //可为空 /^\s*$/ //密码验证,必须且只含有数字和字母,可以拥有英文符号,6-17位 /(?=.{,})(?=.*\d)(?=.*[a-z])[\x2 ...
- HTML5 Audio/Video 标签属性与事件
chrom 只测试过部分属性,均正常,兼容性未测试: 标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放controls:浏览器自带的控制条 1 标签属性 ...
- WPF的Presenter(ContentPresenter)
WPF的Presenter(ContentPresenter) 2010-12-20 14:34 by Clingingboy, 10619 阅读, 3 评论, 收藏, 编辑 这是2年前写了一篇文章 ...
- nodeJs爬虫小程序练习
//爬虫小程序 var express = require('express'); //superagent是一个http的库,可以发起get和post请求 var superagent = requ ...
- 64位Navicat Premium安装/破解【含资源】
开门见山: 1/先安装Navicat Primium,双击Navicat Primium——trial_64.exe(64位) 2/安装好打开Navicat Primium,提示使用或注册时,双击Pa ...
- 第六次scrum meeting记录
文章负责:刘斯盾 日期:2017年10月30日 会议地点:新主楼F座二楼 各组员工作情况 团队成员 昨日完成任务 明日要完成任务 赵晓宇 评分界面搭建 issue17 课程列表页面搭建 issue20 ...
- 马拉车——模版+KMP——模版
void Manacher(){ ;t[i];++i,len+=){ s[i<<]='#'; |]=t[i]-'A'+'a'; |]=t[i]; } s[len++]='#'; ,pos= ...
- Docker registry 与 持续集成
1.如何建立私有的 Docker Hub docker是一个非常好用的虚拟化工具. Registry 在git上分为老代码库和新代码库,老代码push,pull 存在性能问题,新代码库采用go语言编写 ...
- Message类的属性Msg所关联的消息ID
在做C#的Message消息处理的时候,用到了消息的msg编号不知道对应的是什么事件,所以才从网上找来资料如下,在文章最后我会给出资料的出处的. WM_NULL=0x0000 WM_CREATE=0x ...