`
herestay
  • 浏览: 36020 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android简单的SQLite操作及ListView展示数据

阅读更多

学习Android有几天了,今天研究了下SQLite的简单操作,现在分享给奋斗在一线的苦逼程序员们,共勉吧。

 

Android系统提供了一个SQLiteOpenHelper的一个辅助类,使用此类可以完成对数据库的创建及更新,写了一个简单的类,代码如下:

package com.van.sqlite.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBOpenHelper extends SQLiteOpenHelper{
	
	/**数据库名称*/
	private static final String DATABASE_NAME="MyAppDB";
	/**数据库版本*/
	private static final int DATABASE_VERSION=1;
	/** 创建数据表语句*/
	private static final String DDL_CREATE_TABLE_APPINFO="CREATE TABLE IF NOT EXISTS AppInfo (appId integer primary key autoincrement,appName text,appDescription text, remark text)";

	/**
	 * 实例化数据库连接.
	 * @param context
	 */
	public DBOpenHelper(Context context){
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
		/**初始化数据表*/
		this.getWritableDatabase().execSQL(DDL_CREATE_TABLE_APPINFO);
		
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
	}
}

 

布局文件: main.xml,只添加了一个ListView用于显示数据

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView_appList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

 

数据列表的项实现:list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView_appName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView_appDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</LinearLayout>

 

SQLiteDemoActivity 代码:

package com.van.sqlite;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import com.van.sqlite.db.DBOpenHelper;

public class SQLiteDemoActivity extends Activity {
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //initData(); //这个方法只是用来临时加载一下数据以备显示
        
        ListView listView=(ListView)findViewById(R.id.listView_appList);
        //获取查询结果
        ArrayList<HashMap<String, Object>> listData=fillList();
        //获取适配器
        SimpleAdapter adapter=fillAdapter(listData);
        //添加并且显示  
        listView.setAdapter(adapter);  
    }
    

    /**
	 * 插入数据操作
	 */
	public void initData(){
		DBOpenHelper helper=new DBOpenHelper(this);
		ContentValues values=new ContentValues();
		values.put("appName", "手机QQ2212");
		values.put("appDescription", "手机QQ2012是腾讯公司基于移动终端开发的一款应用软件。");
		values.put("remark", "手机QQ2012是腾讯公司基于移动终端开发的一款应用软件。");
		helper.getWritableDatabase().insert("AppInfo", null, values);
	}
    
	/**
	 * 查询AppInfo返回Map集合
	 * @return
	 */
    public  ArrayList<HashMap<String, Object>> fillList(){
    	
    	 //生成动态数组,并且转载数据  
        ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();  
        
        DBOpenHelper helper=new DBOpenHelper(this);
        SQLiteDatabase db=helper.getReadableDatabase();
        
        try{
	        Cursor cursor=db.rawQuery("SELECT * FROM AppInfo", null); 
	        cursor.moveToFirst();

	        if(cursor.moveToFirst()) {  
	        		Integer appId = cursor.getInt(cursor.getColumnIndex("appId"));  
	        		String appName = cursor.getString(cursor.getColumnIndex("appName")); 
	        		String appDescription = cursor.getString(cursor.getColumnIndex("appDescription")); 
	        		
	        		HashMap<String, Object> map = new HashMap<String, Object>();  
	                map.put("appId",appId);  
	                map.put("appName", appName);  
	                map.put("appDescription", appDescription);  
	                dataList.add(map);  
	        }  
	        
        }catch(Exception ex){
        	ex.printStackTrace();
        }finally{
        	
        	if(db.isOpen()){
        		db.close();
        	}
        }
        
		return dataList;
    }
    
    /**
     * 填充数据,取得数据适配器.
     * @param listData
     * @return
     */
    public SimpleAdapter fillAdapter(ArrayList<HashMap<String, Object>> listData){
    	
    	
    	 //生成适配器,数组===》ListItem  
        SimpleAdapter adapter = new SimpleAdapter(this,
        											listData,//数据来源   
                                                    R.layout.list_item,//ListItem的XML实现  
                                                    //动态数组与ListItem对应的子项          
                                                    new String[] {"appName", "appDescription"},   
                                                    //ListItem的XML文件里面的两个TextView ID  
                                                    new int[] {R.id.textView_appName,R.id.textView_appDescription});  
        
        return adapter;
    	
    }
}

 

 

运行结果如下:

 

把工程目录结构也贴上:

分享到:
评论

相关推荐

    Android中Sqlite数据库跟Listview对数据进行增删改查(附带登录注册功能)

    Android Stdio开发的一个应用,运用Sqlite数据库和listview实现在前端进行对Sqlite的增删改查,数据库中的数据显示在Listview上,在Editetext上输入关键字会查询带有关键字的数据,点击Listview的每一行都可以对该行...

    android读取sqlite数据库的数据并用listview显示

    本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和...

    Android Studio如何获取SQLite数据并显示到ListView上

    在Android开发中,ListView是一个非常常用的组件,常用于展示大量数据列表。本教程将指导你如何从SQLite数据库中获取数据并将其动态显示到ListView上。SQLite是一个轻量级的嵌入式数据库,适用于移动设备,它能高效...

    android SQlite、listView中加按钮的使用

    综上所述,这个“android SQlite、listView中加按钮的使用”的项目涵盖了Android开发中的重要知识点,包括SQLite数据库的管理和操作,ListView的自定义适配器及事件监听,以及sharedPreferences的使用。这些技术对于...

    Android基础 SQLite和ListView

    总之,SQLite和ListView是Android开发中数据管理和界面展示的基础,掌握它们的使用方法对于构建功能丰富的应用程序至关重要。通过理解SQLite的数据操作和ListView的适配器机制,开发者可以有效地组织和呈现应用程序...

    Android 根据EditText搜索框 ListView动态显示数据

    这就是如何在Android中根据EditText搜索框动态显示ListView数据的基本步骤。使用SimpleAdapter可以简化数据绑定,而TextWatcher则帮助我们监听并处理搜索事件。在实际应用中,你可能需要根据具体需求对数据结构和...

    Sqlite实例及ListView

    总之,"Sqlite实例及ListView"涉及了Android中数据存储和UI展示的核心技术。理解并掌握这些知识点,对于开发功能丰富的Android应用至关重要。在实际项目中,还需要根据需求进行更复杂的操作,如数据分页、搜索过滤等...

    Android案例:商品展示系统。利用SQLite+ListView,实现商品增删查改

    接着,ListView是Android中用于显示多行数据的视图组件,常用于列表展示。在这个系统中,ListView被用来显示商品列表。开发者需要创建一个自定义的Adapter,该Adapter将SQLite数据库中的商品数据转化为ListView可...

    Android SQLite ListView Demo

    本示例项目“Android SQLite ListView Demo”旨在演示如何在Android应用中利用SQLite数据库存储数据,并通过ListView来展示这些数据。以下是这个项目涉及到的关键知识点: 1. **SQLite数据库的使用**: - **创建...

    将SQLite数据展示到listview小案例

    总之,这个案例涵盖了Android中使用SQLite数据库的基本操作,包括创建表、插入数据、查询数据以及将查询结果展示在ListView上。通过理解并实践这些步骤,开发者可以更好地掌握Android应用中数据管理与UI展示的核心...

    kotlin+SQLite+ListView实现简单的数据库操作

    本教程将探讨如何使用Kotlin与SQLite结合,通过ListView展示数据,实现简单的数据库操作。 首先,我们需要在Kotlin项目中添加SQLite库的支持。在`build.gradle`模块文件中,添加以下依赖: ```groovy dependencies ...

    android开发教程之listview显示sqlite数据

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。SQLite则是一个轻量级的数据库系统,常用于存储应用内的结构化数据。本教程将介绍如何在Android应用中使用ListView显示SQLite数据库中的数据...

    android SQLite+ListView 的简单使用

    在Android开发中,SQLite是一个内置的轻量级数据库系统,用于存储应用程序的数据。SQLite支持标准的关系型数据库特性,如SQL语法、事务处理等,且它无需独立服务器进程,可以直接嵌入到应用程序中。ListView则是...

    Android中ListView,SQLite,BaseAdapter的结合源码

    在Android开发中,ListView、SQLite和BaseAdapter是三个至关重要的组件,它们共同协作,使得应用程序能够展示和管理大量数据。ListView是一种可滚动的视图,用于显示一系列项,而SQLite是一个轻量级的数据库系统,...

    android listview分页查询显示

    然后,通过调用Adapter的notifyDataSetChanged()方法,通知ListView数据已更新,它会自动刷新视图,显示新的数据。 为了提升用户体验,我们还可以添加一个加载指示器,如ProgressBar或SwipeRefreshLayout,当正在...

    Android管理信息系统: 包括SQLite 数据库的增删改查,ListView的刷新,弹出对话框提示操作 ListView列表的优化

    Android管理信息系统: 包括SQLite 数据库的增删改查,ListView的刷新,弹出对话框提示操作 ListView列表的优化 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间...

    Android 绿豆通讯录【SQLite数据库】

     Android 绿豆通讯录( SQLite数据库 + ListView数据展示控件 ) https://blog.csdn.net/weixin_44949135/article/details/106029404 采用 SQLite数据库 + ListView数据展示控件,可将用户添加的所有信息,分条...

    Android中采用ListView实现数据列表显示案例

    在Android开发中,ListView是展示大量数据列表的常用组件,尤其适用于实现长列表的滚动查看。本案例将详细讲解如何在Android应用中采用ListView来显示数据列表,包括基本的使用方法、自定义适配器以及优化性能的策略...

    ListVIew存储和表现sqlite数据

    - **适配器更新**:使用notifyDataSetChanged()或notifyItemChanged()通知ListView数据已改变,刷新视图。 6. **自定义Adapter**: - **BaseAdapter**:如果CursorAdapter不满足需求,可以继承BaseAdapter实现...

    [Android] 使用SQLite简单增删改查操作数据库 显示ListView中 源码

    本文主要参考博客完成,通过SQLite对Android数据库进行简单的操作,包括创建数据库、建表、更新数据、删除数据、插入数据,并通过适配器显示在ListView中。基础免费资源,仅供大家学习。希望对大家有所帮助,是...

Global site tag (gtag.js) - Google Analytics