学习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 Stdio开发的一个应用,运用Sqlite数据库和listview实现在前端进行对Sqlite的增删改查,数据库中的数据显示在Listview上,在Editetext上输入关键字会查询带有关键字的数据,点击Listview的每一行都可以对该行...
本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和...
在Android开发中,ListView是一个非常常用的组件,常用于展示大量数据列表。本教程将指导你如何从SQLite数据库中获取数据并将其动态显示到ListView上。SQLite是一个轻量级的嵌入式数据库,适用于移动设备,它能高效...
综上所述,这个“android SQlite、listView中加按钮的使用”的项目涵盖了Android开发中的重要知识点,包括SQLite数据库的管理和操作,ListView的自定义适配器及事件监听,以及sharedPreferences的使用。这些技术对于...
总之,SQLite和ListView是Android开发中数据管理和界面展示的基础,掌握它们的使用方法对于构建功能丰富的应用程序至关重要。通过理解SQLite的数据操作和ListView的适配器机制,开发者可以有效地组织和呈现应用程序...
这就是如何在Android中根据EditText搜索框动态显示ListView数据的基本步骤。使用SimpleAdapter可以简化数据绑定,而TextWatcher则帮助我们监听并处理搜索事件。在实际应用中,你可能需要根据具体需求对数据结构和...
总之,"Sqlite实例及ListView"涉及了Android中数据存储和UI展示的核心技术。理解并掌握这些知识点,对于开发功能丰富的Android应用至关重要。在实际项目中,还需要根据需求进行更复杂的操作,如数据分页、搜索过滤等...
接着,ListView是Android中用于显示多行数据的视图组件,常用于列表展示。在这个系统中,ListView被用来显示商品列表。开发者需要创建一个自定义的Adapter,该Adapter将SQLite数据库中的商品数据转化为ListView可...
本示例项目“Android SQLite ListView Demo”旨在演示如何在Android应用中利用SQLite数据库存储数据,并通过ListView来展示这些数据。以下是这个项目涉及到的关键知识点: 1. **SQLite数据库的使用**: - **创建...
总之,这个案例涵盖了Android中使用SQLite数据库的基本操作,包括创建表、插入数据、查询数据以及将查询结果展示在ListView上。通过理解并实践这些步骤,开发者可以更好地掌握Android应用中数据管理与UI展示的核心...
本教程将探讨如何使用Kotlin与SQLite结合,通过ListView展示数据,实现简单的数据库操作。 首先,我们需要在Kotlin项目中添加SQLite库的支持。在`build.gradle`模块文件中,添加以下依赖: ```groovy dependencies ...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。SQLite则是一个轻量级的数据库系统,常用于存储应用内的结构化数据。本教程将介绍如何在Android应用中使用ListView显示SQLite数据库中的数据...
在Android开发中,SQLite是一个内置的轻量级数据库系统,用于存储应用程序的数据。SQLite支持标准的关系型数据库特性,如SQL语法、事务处理等,且它无需独立服务器进程,可以直接嵌入到应用程序中。ListView则是...
在Android开发中,ListView、SQLite和BaseAdapter是三个至关重要的组件,它们共同协作,使得应用程序能够展示和管理大量数据。ListView是一种可滚动的视图,用于显示一系列项,而SQLite是一个轻量级的数据库系统,...
然后,通过调用Adapter的notifyDataSetChanged()方法,通知ListView数据已更新,它会自动刷新视图,显示新的数据。 为了提升用户体验,我们还可以添加一个加载指示器,如ProgressBar或SwipeRefreshLayout,当正在...
Android管理信息系统: 包括SQLite 数据库的增删改查,ListView的刷新,弹出对话框提示操作 ListView列表的优化 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间...
Android 绿豆通讯录( SQLite数据库 + ListView数据展示控件 ) https://blog.csdn.net/weixin_44949135/article/details/106029404 采用 SQLite数据库 + ListView数据展示控件,可将用户添加的所有信息,分条...
在Android开发中,ListView是展示大量数据列表的常用组件,尤其适用于实现长列表的滚动查看。本案例将详细讲解如何在Android应用中采用ListView来显示数据列表,包括基本的使用方法、自定义适配器以及优化性能的策略...
- **适配器更新**:使用notifyDataSetChanged()或notifyItemChanged()通知ListView数据已改变,刷新视图。 6. **自定义Adapter**: - **BaseAdapter**:如果CursorAdapter不满足需求,可以继承BaseAdapter实现...
本文主要参考博客完成,通过SQLite对Android数据库进行简单的操作,包括创建数据库、建表、更新数据、删除数据、插入数据,并通过适配器显示在ListView中。基础免费资源,仅供大家学习。希望对大家有所帮助,是...