1. 程式人生 > >商品展示案例 (資料儲存和訪問

商品展示案例 (資料儲存和訪問

package?cn.edu.bzu.productshow;??
import?android.app.Activity;??
import?android.app.AlertDialog.Builder;??
import?android.content.DialogInterface;??
import?android.os.Bundle;??
import?android.view.View;??
import?android.view.View.OnClickListener;??
import?android.view.ViewGroup;??
import?android.widget.AdapterView;??
import?android.widget.AdapterView.OnItemClickListener;??
import?android.widget.BaseAdapter;??
import?android.widget.EditText;??
import?android.widget.ImageView;??
import?android.widget.ListView;??
import?android.widget.TextView;??
import?android.widget.Toast;??
import?cn.edu.bzu.productshow.Bean.Account;??
??
import?java.util.List;??
import?java.util.Locale;??
??
import?cn.edu.bzu.productshow.Dao.AccountDao;??
??
public?class?MainActivity?extends?Activity?{??
//需要適配的資料集合??
????private?List<Account>?list;??
????//需要增刪改查操作類??
????private?AccountDao?dao;??
????//輸入姓名的edittext??
????private?EditText?nameET;??
????//輸入金額的edittext??
????private?EditText?balanceET;??
????//介面卡??
????private?MyAdapter?adapter;??
????//Listview??
????private?ListView?accountLV;??
[email protected]
??
????protected?void?onCreate(Bundle?savedInstanceState)?{??
????????super.onCreate(savedInstanceState);??
????????setContentView(R.layout.activity_main);??
????????//初始化控制元件??
????????initView();??
????????dao=new?AccountDao(this);??
????????//從資料庫查詢所有資料??
????????list=dao.queryAll();??
????????adapter=new?MyAdapter();??
????????accountLV.setAdapter(adapter);//給ListView新增介面卡(自動把資料生成條目)??
????}??
????//初始化控制元件??
????private?void?initView()??
????{??
????????accountLV=(ListView)findViewById(R.id.accountLV);??
????????nameET=(EditText)?findViewById(R.id.nameET);??
????????balanceET=(EditText)findViewById(R.id.balanceET);??
????????//新增監聽器,監聽條目點選事件??
????????accountLV.setOnItemClickListener(new?MyOnItemClickListener());??
????}??
????//activity_main.xml對應的inageview的點選事件觸發的方法??
????public?void?add(View?v)??
????{??
????????String?name=nameET.getText().toString().trim();??
????????String?balance=balanceET.getText().toString().trim();??
????????//三目運算balance.equals("")則等於0??
????????//如果balance不是空字串,則進行強制型別轉換??
????????Account?a=new?Account(name,?balance.equals("")?0:Integer.parseInt(balance));??
????????dao.insert(a);//插入資料庫??
????????list.add(a);//插入集合??
????????adapter.notifyDataSetChanged();//重新整理介面??
????????//選中最後一個??
????????accountLV.setSelection(accountLV.getCount()-1);??
????????nameET.setText("");??
????????balanceET.setText("");??
????}??
????//自定義一個介面卡(把資料裝到ListView的工具)??
????private?class?MyAdapter?extends?BaseAdapter{??
????????public?int?getCount(){???//獲取條目總數??
????????????return?list.size();??
????????}??
????????public?Object?getItem(int?position)?//根據位置獲取物件??
????????{??
????????????return??list.get(position);??
????????}??
????????public?long?getItemId(int?position)?//根據位置獲取id??
????????{??
????????????return??position;??
????????}??
????????//獲取一個條目檢視??
????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)??
????????{??
????????????//重用converView??
?????????????View?item=convertView!=null?convertView:View.inflate(getApplicationContext(),R.layout.item,null);??
????????????//獲取該檢視中的textview??
????????????TextView?idTV=(TextView)?item.findViewById(R.id.idTV);??
????????????TextView?nameTV=(TextView)?item.findViewById(R.id.nameTV);??
????????????TextView?balanceTV=(TextView)?item.findViewById(R.id.balanceTV);??
????????????//根據當前位置獲取Account物件??
????????????final?Account?a=list.get(position);??
????????????//把Account物件中的資料放到textview中??
????????????idTV.setText(a.getId()+"");??
????????????nameTV.setText(a.getName());??
????????????balanceTV.setText(a.getBalance()+"");??
????????????ImageView?upTV=(ImageView)?item.findViewById(R.id.upIV);??
????????????ImageView?downTV=(ImageView)?item.findViewById(R.id.downIV);??
????????????ImageView?deleteTV=(ImageView)?item.findViewById(R.id.deleteIV);??
????????????//向上箭頭的事件觸發方法??
????????????upTV.setOnClickListener(new?View.OnClickListener()?{??
[email protected]
??
????????????????public?void?onClick(View?v)?{??
????????????????????a.setBalance(a.getBalance()+1);??
????????????????????notifyDataSetChanged();??
????????????????????dao.update(a);??
????????????????}??
????????????});<pre?class="html"?name="code">???????????//向下箭頭的事件觸發方法??
????????????upTV.setOnClickListener(new?View.OnClickListener()?{??
[email protected]
??
????????????????public?void?onClick(View?v)?{??
????????????????????a.setBalance(a.getBalance()-1);??
????????????????????notifyDataSetChanged();??
????????????????????dao.update(a);??
????????????????}??
????????????});
?deleteTV.setOnClickListener(new?View.OnClickListener()?{??
[email protected]??
????????????????public?void?onClick(View?v)?{??
????????????????????//刪除資料之前首先彈出一個對話方塊??
????????????????????android.content.DialogInterface.OnClickListener?listener=??
????????????????????????????new?android.content.DialogInterface.OnClickListener(){??
????????????????????????????????public?void?onClick(DialogInterface?dialog,int?which){??
????????????????????????????????????list.remove(a);//從集合刪除??
????????????????????????????????????dao.delete(a.getId());//從資料庫刪除??
????????????????????????????????????notifyDataSetChanged();//重新整理介面??
????????????????????????????????}??
????????????????????????????};??
????????????????????//建立對話方塊??
?????????????????Builder?builder?=new?Builder(MainActivity.this);??
????????????????????builder.setTitle("確定要刪除嗎?");???????????//設定標題??
????????????????????//設定確定按鈕的文字以及監聽器??
????????????????????builder.setPositiveButton("確定",listener);??
????????????????????builder.setNegativeButton("取消",null);??
????????????????????builder.show();??
????????????????}??
????????????});??
????????????return?item;??
????????}??
????}??
????//Listview的item點選事件??
????private?class?MyOnItemClickListener?implements?OnItemClickListener{??
??
????????public?void?onItemClick(AdapterView<?>?parent,View?view,int?position,long?id)??
????????{??
????????????//獲取點選位置上的資料??
???????????Account???a=(Account)?parent.getItemAtPosition(position);??
????????????Toast.makeText(getApplicationContext(),a.toString(),Toast.LENGTH_SHORT).show();??
????????}??
????}??
}??

相關推薦

商品展示案例 資料儲存訪問

package?cn.edu.bzu.productshow;?? import?android.app.Activity;?? import?android.app.AlertDialog.Builder;?? import?android.content.DialogInterface;?? import

實驗六 資料儲存訪問

實驗六 資料儲存和訪問 實驗目的 實驗要求 工程程式碼 實驗目的 分別使用sqlite3工具和Android程式碼的方式建立SQLite資料庫。在完成建立資料庫的工作後,程式設計實現基本的資料庫操作功能,包括資料的

iOS應用開發基礎四)基礎知識資料儲存多執行緒)

本文可能涉及很多零碎的知識點,其中包括iOS應用開發的相關基礎知識。以後會針對每個條目在進行深入研究,這裡只是先做一個相關知識的概述總結。 iOS的資料儲存 大多數iOS程式其功能總結為:提供一套介面,幫助使用者管理特定資料。在這個過程中,不同物件各司其

案例】Danone依靠Matrikon進行資料儲存分析

Matrikon是基於OPC UA和基於OPC的控制自動化資料互操作性產品的供應商,提供自動化廠商的高階OPC UA開發工具包,適用於從嵌入式裝置到雲應用的所有產品線。對於終端使用者客戶,Matrikon提供了關鍵資料工具,以最好地促進企業廣泛的資料共享。 Danone是一家致力於通過保證食品安

資料庫系統概念機械工業出版社,第六版)複習——第十章:資料儲存資料存取

第十章 資料儲存和資料存取 檔案組織 每個檔案分成定長的儲存單元,稱作塊(block),塊是儲存分配和資料傳輸的基本單元。 變長記錄 分槽頁結構: 分槽的頁結構一般用於在塊中組織記錄。 分槽頁頁頭,在

Echart實現從資料庫獲取資料展示圖表結合ServletSSM實現的兩種例項)

        2018年5月30日(UPDATE): Google郵箱不怎麼上,建議Email [email protected]------------------------------

Android——SQLite資料庫)ListView控制元件之商品展示案例

一、實驗目的 開發一個購物車,需要將購物車中的商品以列表的形式展示,並且還需要對購物車中的商品進行增刪改查操作。要實現這些功能就需要使用 ListView 和 SQLite 資料庫。 二、 訓練目標 1) 掌握 SQLite 儲存方式 2) 掌握如何使用 SQLite 完成

android學習筆記一)資料儲存訪問

Android為資料儲存提供了以下幾種方式: 1.檔案儲存方式 2.SharedPreference儲存方式 3.Content Provider 內容提供者 4.網路儲存方式 (一).檔案操作方式(其本質即為輸入輸出流的操作) 實現登入介面賬號、密碼的儲存功能。

誰說菜鳥不會資料分析工具篇)----- 學習筆記3資料展現日報月報自動化)

1、資料視覺化的意義 互動性:使用者能夠方便地通過互動介面實現資料的管理、計算與預測 多維性:可從資料的多個屬性或變數對資料進行切片、鑽取、旋轉等,以此剖析資料,從而能多角度、多方面分析資料 可視性:資料可用影象、二維圖形、三維圖形和動畫等方式來展現,並可對其模式和相互關係進行

NAR:gcMeta——全球微生物組資料儲存標準化分析平臺

文章目錄 gcMeta全球微生物組資料儲存和標準分析平臺 導讀 摘要 正文 圖1.使用者資料管理、分析及釋出流程 圖2.資料庫結構 表1.平臺內建工具 圖3.使用者介面展示

《Python程式設計從入門到實踐》記錄之json模組資料儲存

模組json讓你能夠將簡單的Python資料結構轉儲到檔案中, 並在程式再次執行時載入該檔案中的資料。 你還可以使用json在Python程式之間分享資料。更重要的是,JSON資料格式並非Python專用的,這讓你能夠將以JSON格式儲存的資料與使用其他程式語言的人分享。這是一種輕便格式,很有用

可能是最簡單最容易的webservice案例給初學者菜鳥提供入門思路)

伺服器端: 一共建立了三個類,一個介面,一個介面實現類,一個釋出類(main方法)。 具體如下: 介面: package service; import javax.jws.WebMethod; @javax.jws.WebService public interface Web

TensorFlow Object Detection API 超詳細教程踩坑過程資料準備訓練)

1.準備資料     object detection的資料是需要tfrecord格式的,但是一般我們還是先製作voc格式的資料更加方便。     1.voc格式資料的準備:github上下載一個label-img:    然後選擇VOC格式,開始漫長的資料

IDEA 中tomcat圖片儲存訪問虛擬路徑

目錄 2 最佳配置 1、idea 修改Tomcat的虛擬路徑(第一種方法) 修改配置檔案有很多種,但是一直不成功;後來想還是idea的配置原因,這裡tomcat虛擬路徑只說一種; 修改Tomcat安裝路徑下server.xml的檔案,路徑:apache

Mysql海量資料儲存解決方案之一—分散式DB方案

    面對這樣的一個表,我們怎樣切分呢?怎樣將這樣的資料分佈到不同的資料庫中的表中去呢?其實分析blog的應用,我們不難得出這樣的結論:blog的應用中,使用者分為兩種:瀏覽者和blog的主人。瀏覽者瀏覽某個blog,實際上是在一個特定的使用者的blog下進行瀏覽的,而blog的主人管理自己的blog,也同

Android應用開發-資料儲存介面展現(二)

SQLite資料庫 // 自定義類MyOpenHelper繼承自SQLiteOpenHelper MyOpenHelper oh = new MyOpenHelper(getContext(), "school.db", null, 1); // 獲取資料庫物件,如果資料庫不存在,會自動建立

Android應用開發-資料儲存介面展現(一)

常見佈局 相對佈局(RelativeLayout)   相對佈局下控制元件預設位置都是左上角(左對齊、頂部對齊父元素),控制元件之間可以重疊   可以相對於父元素上下左右對齊,相對於父元素水平居中、豎直居中、水平豎直同時居中 android:layout_alignParentRi

離線資料儲存上傳方案

QQ技術交流群:129518033解決方案下載地址:Github相關專案:引言在網路廣泛普及的今天,各行各業的發展都對網路產生了很大的依賴性.瞬時的斷網可能會對一些行業造成巨大的損失,如銀行,金融等資料量較大的行業.斷網或者網路傳輸失敗都可能會使一些即時產生的關鍵資料丟失,導

hadoop離線資料儲存挖掘架構

前序:     當你把你知道的東西,寫下來,讓人看明白是一種境界;當你能把自己寫下來的東西給人講明白,又是另一種境界。在這個過程中,我們都需要歷練。基於hadoop叢集下海量離線資料儲存和挖掘分析架構:       架構圖採用主流的Hadoop+Hive+Hbase叢集架構平

Scrapy豆瓣電影top250excel儲存圖片下載)

豆瓣電影top250url地址:https://movie.douban.com/top250?start= 一. 明確獲取資料資訊(item) 分析頁面上的內容可以獲取到的資料資訊是電影的名稱、導演、演員、簡介、上映時間、評分、參與評分人數、圖片的url地址.在scrapy的item