电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android Studio如何獲取SQLite數據并顯示到ListView上

瀏覽:115日期:2022-09-25 11:34:43

我們在使用ListView的時候需要和數據進行綁定,那么問題來了,如何獲取SQLite數據庫中的數據并動態的顯示到ListView當中呢?其實過程很簡單:首先要獲取SQLite數據(當然首先你要創建一個SQLite數據庫并填寫了一些數據),然后引入ListView控件,最后將數據和ListView綁定就好了。

一 獲取SQLite數據庫中的數據

SQLite是一個輕量級的數據庫,它能將數據保存到你的手機,但缺點是一旦軟件卸載所有數據將一同被銷毀。所以要根據自己的項目需要選擇性的使用。下面要演示將SQLite中的數據提取出來。

首先定義一個類用來實例化數據庫

public class initdate { public Bitmap bitmap; public String content; public String data; public initdate (Bitmap bitmap ,String context,String time){ this.bitmap =bitmap; this.content =context; this.data =time; }}

創建一個List對象用來存儲數據

List<initdate> list = new ArrayList<>();

獲取SQLite中對應表的數據

DBOpenHelper helper = new DBOpenHelper(getActivity(), '數據庫的名稱', null, 1);//創建對象 SQLiteDatabase db = helper.getWritableDatabase(); Cursor c = db.query('表名', null, null, null, null, null, null); if (c != null && c.getCount() >= 1) { while (c.moveToNext()) {list.add(new initdate(base64ToBitmap(c.getString(c.getColumnIndex('字段名1'))), c.getString(c.getColumnIndex('字段名2')), c.getString(c.getColumnIndex('字段名3')))); } c.close(); db.close();//關閉數據庫 }

base64ToBitmap方法用于將String類型轉換成Bitmap

public static Bitmap base64ToBitmap(String base64info) { byte[] bytes = Base64.decode(base64info, Base64.DEFAULT); return BitmapFactory.decodeByteArray(bytes, 0, bytes.length); }

二 引入ListView控件

ListView的引入是比較簡單的,我們可以直接將ListView控件拖拽到xml文件中即可。這里不過多介紹

<ListView android: android:layout_width='match_parent' android:layout_height='wrap_content'/>

三 將數據和ListView綁定

首先將獲取到的數據通過一個循環存放到map對象中

for (int i = 0; i < list.size(); i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put('image', list.get(i).bitmap); map.put('category', list.get(i).content); map.put('money', list.get(i).data); listitem.add(map); } SimpleAdapter adapter = new SimpleAdapter(getActivity(), listitem, R.layout.fragment_one_item, new String[]{'category', 'money', 'image'}, new int[]{R.id.tv_expense_category, R.id.tv_expense_money, R.id.image_expense}); ListView listView = (ListView) v.findViewById(R.id.lv_expense); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {//設置監聽器 @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {Map<String, Object> map = (Map<String, Object>) parent.getItemAtPosition(position);Toast.makeText(getActivity(), map.get('category').toString(), Toast.LENGTH_LONG).show(); } });

fragment_one_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'> <ImageView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:paddingTop='10dp' android:paddingRight='10dp' android:paddingBottom='10dp' android:adjustViewBounds='true' android:maxWidth='72dp' android:maxHeight='72dp'/> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_weight='1' android:padding='10dp'/> <TextView android: android:layout_width='wrap_content' android:layout_height='40dp' android:text='100yuan'/></LinearLayout>

此時我們已經將獲取到的數據和ListView進行了綁定,我們可以直接運行,發現除了小照片不能顯示外其他的信息都正常顯示。這是由于SimpleAdapter 適配器默認使用顯示的圖片資源都是程序內的本地資源就是能通過R.drawable.?得到的,如果我們想要把從數據庫中獲得的Bitmap類型的圖片顯示到ListView中就要自己實現ViewBinder()這個接口,在里面定義數據和視圖的匹配關系 。

for (int i = 0; i < list.size(); i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put('image_expense', list.get(i).bitmap); map.put('expense_category', list.get(i).content); map.put('expense_money', list.get(i).data); listitem.add(map); } SimpleAdapter adapter = new SimpleAdapter(getActivity(), listitem, R.layout.fragment_one_item, new String[]{'expense_category', 'expense_money', 'image_expense'}, new int[]{R.id.tv_expense_category, R.id.tv_expense_money, R.id.image_expense}); adapter.setViewBinder(new SimpleAdapter.ViewBinder() { @Override public boolean setViewValue(View view, Object data, String textRepresentation) {if ((view instanceof ImageView) & (data instanceof Bitmap)) { ImageView iv = (ImageView) view; Bitmap bm = (Bitmap) data; iv.setImageBitmap(bm); return true;}return false; } }); ListView listView = (ListView) v.findViewById(R.id.lv_expense); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {//設置監聽器 @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {Map<String, Object> map = (Map<String, Object>) parent.getItemAtPosition(position);Toast.makeText(getActivity(), map.get('expense_category').toString(), Toast.LENGTH_LONG).show(); } });

此時照片資源也能正常顯示了。

總結

到此這篇關于Android Studio如何獲取SQLite數據并顯示到ListView上的文章就介紹到這了,更多相關android studio SQLite數據ListView內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 诗词大全-古诗名句 - 古诗词赏析| 南京欧陆电气股份有限公司-风力发电机官网 | 浙江富广阀门有限公司 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏| 防爆正压柜厂家_防爆配电箱_防爆控制箱_防爆空调_-盛通防爆 | 高压包-点火器-高压发生器-点火变压器-江苏天网| 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 数字展示在线_数字展示行业门户网站 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 除甲醛公司-甲醛检测-广西雅居环境科技有限公司 | 至顶网| 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 四川成人高考_四川成考报名网| 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 光纤测温-荧光光纤测温系统-福州华光天锐光电科技有限公司 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 |