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数据库中的 ...
随机推荐
- 爬虫之MongoDB
一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 1.易用性 MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库. 不采用关系型主要是为了 ...
- 医院Android项目总结
Eclipse ADT 配置AVD 1.layout布局:xml 如ck_report.xml <Text view ...android:id="ck"> & ...
- .net如何解析二维码图片
二维码现在越来越流行,可以使用手机上或其它移动终端上的二维码扫描器软件对着二维码一扫,就可以得到相关信息.在互联网站上,可以找到很多二维码的工具,甚至还有不少在线生成.解析二维码的网站.在业务系统当中 ...
- 代码题(45)— 下一个排列、第k个排列
1.31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只 ...
- python后端面试题
1. 果壳 电话面试: 说一下TCP的三次握手,四次挥手,为什么会这样? http安全的性的了解,说一下对cookie和session的了解: 对mysql的了解,说一下你常用的数据类型,char和v ...
- IDEA+testng,输出没有test-output目录
参考:http://www.cnblogs.com/veitch-623/p/6192601.html 在Edit Configurations里 使用默认报告就行
- Linux-软件安装管理
1.软件包分类 源码包:脚本安装包 二进制包:RPM包.系统默认包 2.rpm命令管理 @rmp包在系统光盘中 mkdir /mnt/cdrom mount /dev/sr0 /mnt/cdrom c ...
- Python文件练习
练习内容: 使用Python管理ini文件:实现查询,添加,删除,保存操作. 练习目的: 1.掌握文件基本操作 2.认识ini文件 3.了解ConfigParser: ini配置文件格式: 节:[se ...
- 魔法效果——dijkstra+堆(邻接表存储)
dijkstra本身每次要for一遍,才能找出最小的节点,但用了堆之后,直接取出堆首就可以了. 但要注意的一点是,c++自带的stl里的priority_queue本身是先入大出的,而我们要求的是最小 ...
- BEC translation exercise 1
U.S. oil drillers have made major efficiency improvements with a speed that has repeatedly surprised ...