




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章數(shù)據(jù)庫(kù)編程安卓·入門與開發(fā)目錄6.1 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介6.2 創(chuàng)建數(shù)據(jù)庫(kù)6.3 SQLite數(shù)據(jù)庫(kù)的操作6.4 數(shù)據(jù)信息顯示控件6.5 購(gòu)物商城的數(shù)據(jù)庫(kù)編程6.1
SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介Android系統(tǒng)集成了一個(gè)輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù)——SQLite。它不像Oracle、MySQL和SQLServer等那樣專業(yè),但是因?yàn)樗加觅Y源少,運(yùn)行效率高、安全可靠、可移植性強(qiáng),并且提供零配置運(yùn)行模式,所以適用于在資源有限的設(shè)備(如手機(jī)和平板電腦等)上進(jìn)行數(shù)據(jù)存取。在開發(fā)手機(jī)應(yīng)用時(shí),一般會(huì)通過(guò)代碼來(lái)動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫(kù),即在程序運(yùn)行時(shí),首先嘗試打開數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)不存在,則自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù),然后再打開該數(shù)據(jù)庫(kù)。下面介紹如何通過(guò)代碼來(lái)創(chuàng)建以及操作數(shù)據(jù)庫(kù)。6.1SQLite數(shù)據(jù)簡(jiǎn)介6.1 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介6.2 創(chuàng)建數(shù)據(jù)庫(kù)6.3 SQLite數(shù)據(jù)庫(kù)的操作6.4 數(shù)據(jù)信息顯示控件6.5 購(gòu)物商城的數(shù)據(jù)庫(kù)編程目錄6.2
創(chuàng)建數(shù)據(jù)庫(kù)static
SQLiteDatabase
openOrCreateDatabase(String
path,SQLiteDatabase.CursorFactoryfactory)SQLiteDatabasedb=SQLiteDatabase.
OpenOrCreateDatabase(“user.db”,null);6.2創(chuàng)建數(shù)據(jù)庫(kù)Android提供了兩種創(chuàng)建SQLite數(shù)據(jù)庫(kù)的方法,下面分別進(jìn)行介紹。1.使用openOrCreateDatabase方法創(chuàng)建數(shù)據(jù)庫(kù)SQLiteDatabase類是Android中專門用來(lái)描述SQLite數(shù)據(jù)庫(kù)的類。SQLiteDatabase表示一個(gè)數(shù)據(jù)庫(kù),應(yīng)用程序只要獲得了代表數(shù)據(jù)庫(kù)的SQLiteDatabase對(duì)象,就可以通過(guò)SQLiteDatabase對(duì)象來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。對(duì)SQLiteDatabase對(duì)象調(diào)用openOrCreateDatabase方法可以打開或創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),語(yǔ)法如下:說(shuō)明:游標(biāo)提供了一種從表中檢索數(shù)據(jù)并進(jìn)行操作的靈活手段,通過(guò)游標(biāo)可以一次處理查詢結(jié)果集中的一行,并可以對(duì)該行數(shù)據(jù)執(zhí)行特定操作。例如,使用openOrCreateDatabase方法創(chuàng)建一個(gè)名稱為user.db的數(shù)據(jù)庫(kù)的代碼如下:?path:用于指定數(shù)據(jù)庫(kù)文件;
?factory:用于實(shí)例化一個(gè)游標(biāo)。6.2
創(chuàng)建數(shù)據(jù)庫(kù)6.2創(chuàng)建數(shù)據(jù)庫(kù)2.通過(guò)SQLiteOpenHelper類創(chuàng)建數(shù)據(jù)庫(kù)在Android中,提供了一個(gè)數(shù)據(jù)庫(kù)輔助類SQLiteOpenHelper。在該類的構(gòu)造器中,調(diào)用Context中的方法創(chuàng)建并打開一個(gè)指定名稱的數(shù)據(jù)庫(kù)。在應(yīng)用這個(gè)類時(shí),需要編寫繼承SQLitcOpenHelper類的子類,并且重寫onCreate()和onUpgrade方法。6.1 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介6.2 創(chuàng)建數(shù)據(jù)庫(kù)6.3 SQLite數(shù)據(jù)庫(kù)的操作6.4 數(shù)據(jù)信息顯示控件6.5 購(gòu)物商城的數(shù)據(jù)庫(kù)編程目錄6.3SQLite數(shù)據(jù)庫(kù)的操作最常用的數(shù)據(jù)操作是指添加、刪除、更新和查詢。對(duì)于這些操作程序開發(fā)人員完全可以通過(guò)執(zhí)行SOL語(yǔ)句來(lái)完成。但是這里推薦使Android提供的專用類和方法來(lái)實(shí)現(xiàn)。SQLiteDatabase類提供了insert()、update()、delete()和query)方法,這些方法封裝了執(zhí)行添加、更新、刪除和查詢操作的SQL命令,所以可以使用這些方法來(lái)完成對(duì)應(yīng)的操作,而不用編寫SQL語(yǔ)句了。(1)添加操作SQLiteDatabase類提供了insert方法用于向表中插入數(shù)據(jù)。Insert方法的基本語(yǔ)法格式如下:publiclonginsert(Stringtable,StringnullColumnHack,ContentValuesvalues)INSERTINTOTABLE_NAME[(column1,column2,column3,...columnN)]VALUES(value1,value2,value3,...valueN);?table:用于指定表名:?nullColumnHack:可選參數(shù),用于當(dāng)values參數(shù)為空時(shí),指定哪個(gè)字段設(shè)置為null,如果values不為空,則該參數(shù)值可以設(shè)置為null;values:用于指定具體的字段值。它相當(dāng)于Map集合,也是通過(guò)鍵值對(duì)的形式存儲(chǔ)值的。6.3SQLite數(shù)據(jù)庫(kù)的操作6.3SQLite數(shù)據(jù)庫(kù)的操作(2)更新操作SQLiteDatabase類提供了update方法用于更新表中的數(shù)據(jù)。Update方法的基本語(yǔ)法格式如下:publicintupdate(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs)UPDATEtable_nameSETcolumn1=value1,column2=value2....columnN=valueN[WHERECONDITION];?
table:用于指定表名;?
values:用于指定要更新的字段及對(duì)應(yīng)的字段值。它相當(dāng)于Map集合,也是通過(guò)鍵值對(duì)的形式存儲(chǔ)值的;?
whereClause:用于指定條件語(yǔ)句,可以使用占位符(?);?
whereArgs:當(dāng)條件表達(dá)式中包含占位符(?)時(shí),該參數(shù)用于指定各占位參數(shù)的值。如果不包括占位符,該參數(shù)值可以設(shè)置為null。6.3SQLite數(shù)據(jù)庫(kù)的操作6.3SQLite數(shù)據(jù)庫(kù)的操作(3)刪除操作SQLiteDatabase類提供了delete方法用于從表中刪除數(shù)據(jù)。Delete方法的基本語(yǔ)法格式如下:publicintdelete(Stringtable,StringwhereClause,String[]whereArgs)DELETEFROMtable_nameWHERE[conditions....................];?table:用于指定表名;?whereClause:用于指定條件語(yǔ)句,可以使用占位符(?);?whercArgs:當(dāng)條件表達(dá)式中包含占位符(?)時(shí),該參數(shù)用于指定各占位參數(shù)的值。如果不包含占位符,該參數(shù)值可以設(shè)置為null。6.3SQLite數(shù)據(jù)庫(kù)的操作6.3SQLite數(shù)據(jù)庫(kù)的操作(4)查詢操作SQLiteDatabase類提供了query方法用于查詢表中的數(shù)據(jù)。Query方法的基本語(yǔ)法格式如下:publicCursorquery(booleandistinct,Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit)?table:用于指定表名;?columns:用于指定要查詢的列。若為空,則返回所有列;?selection:用于指定where子句,即指定查詢條件,可以使用占位符(?);?selectionArgs:where子句對(duì)應(yīng)的條件值,當(dāng)條件表達(dá)式中包含占位符(?)時(shí),該參數(shù)用于指定各占位參數(shù)的值。如果不包含占位符,該參數(shù)值可以設(shè)置為null;?groupBy:用于指定分組方式;?having:用于指定having條件;?orderBy:用于指定排序方式,為空表示采用默認(rèn)排序方式;?limit:用于限制返回的記錄條數(shù),為空表示不限制。?query方法的返回值為Cursor對(duì)象。該對(duì)象中保存著查詢結(jié)果,但是這個(gè)結(jié)果并不是數(shù)據(jù)集合的完整復(fù)制,而是數(shù)據(jù)集的指針。通過(guò)它提供的多種移動(dòng)方式,可以獲取數(shù)據(jù)集合中的數(shù)據(jù)。Cursor類提供的常用方法如表6.1所示。6.3SQLite數(shù)據(jù)庫(kù)的操作表6.1Cursor類提供的常用方法方法說(shuō)明moveToFirst()將指針移動(dòng)到第一條記錄上moveToNext()將指針移動(dòng)到下一條記錄上moveToPrevious()將指針移動(dòng)到上一條記錄上getCount()獲取集合的記錄數(shù)量getColumnIndexOrThrow()返回指定字段名稱的序號(hào),如果字段不存在,則產(chǎn)生異常getColumnName()返回指定序號(hào)的字段名稱6.3 SQLite數(shù)據(jù)庫(kù)的操作6.3SQLite數(shù)據(jù)庫(kù)的操作6.1 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介6.2 創(chuàng)建數(shù)據(jù)庫(kù)6.3 SQLite數(shù)據(jù)庫(kù)的操作6.4 數(shù)據(jù)信息顯示控件6.5 購(gòu)物商城的數(shù)據(jù)庫(kù)編程目錄
一、ListView介紹 ListView有兩個(gè)重要職責(zé):
1、
將數(shù)據(jù)填充到布局
2、
處理用戶的選擇點(diǎn)擊等操作。 ListView需要三個(gè)元素:
1、ListVeiw布局:用來(lái)展示列表的View
2、
適配器:
用來(lái)把數(shù)據(jù)映射到ListView上的中介
3、
數(shù)據(jù)源:
具體的將被映射的字符串,圖片,或者基本組件適配器是一個(gè)連接數(shù)據(jù)和AdapterView的橋梁,通過(guò)它能有效地實(shí)現(xiàn)數(shù)據(jù)與AdapterView的分離設(shè)置,使AdapterView與數(shù)據(jù)的綁定更加簡(jiǎn)便,修改更加容易。將數(shù)據(jù)源的數(shù)據(jù)適配到ListView中的常用適配器有:ArrayAdapter、SimpleAdapter和SimpleCursorAdapter?!rrayAdapter最為簡(jiǎn)單,只能展示一行字;·SimpleAdapter有最好的擴(kuò)充性,可以自定義各種各樣的布局,除了文本外,還可以放ImageView(圖片)、Button(按鈕)、CheckBox(復(fù)選框)等等;·SimpleCursorAdapter可以認(rèn)為是SimpleAdapter對(duì)數(shù)據(jù)庫(kù)的簡(jiǎn)單結(jié)合,可以方便地把數(shù)據(jù)庫(kù)的內(nèi)容以列表的形式展示出來(lái)6.4
數(shù)據(jù)信息顯示控件6.4數(shù)據(jù)信息顯示控件Android常用列表信息顯示控件有ListView、RecyclerView。6.4
數(shù)據(jù)信息顯示控件6.4數(shù)據(jù)信息顯示控件
二、RecyclerView介紹 RecyclerView集成自ViewGroup。RecyclerView是Android-support-V7版本中新增的一個(gè)組件,官方對(duì)于它的介紹是:RecyclerView是ListView的升級(jí)版本,更加先進(jìn)和靈活。ListView只能實(shí)現(xiàn)垂直滾動(dòng)列表,但RecyclerView還可以實(shí)現(xiàn)水平、多列、跨列等復(fù)雜的滾動(dòng)列表。在使用RecyclerView時(shí)候,必須指定一個(gè)適配器Adapter和一個(gè)布局管理器LayoutManager。適配器繼承RecyclerView.Adapter類,具體實(shí)現(xiàn)類似ListView的適配器,取決于數(shù)據(jù)信息以及展示的UI。布局管理器用于確定RecyclerView中Item的展示方式以及決定何時(shí)復(fù)用已經(jīng)不可見(jiàn)的Item,避免重復(fù)創(chuàng)建以及執(zhí)行高成本的findViewById方法。Android常用列表信息顯示控件有ListView、RecyclerView。6.1 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介6.2 創(chuàng)建數(shù)據(jù)庫(kù)6.3 SQLite數(shù)據(jù)庫(kù)的操作6.4 數(shù)據(jù)信息顯示控件6.5 購(gòu)物商城的數(shù)據(jù)庫(kù)編程目錄6.5
購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。?
在包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建entity包,用于存放購(gòu)物商城用到的各種自定義類。?
在包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建db包用于存放數(shù)據(jù)庫(kù)操作類。?
在包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建utils包用于存放常用工具類。?
新建的步驟如圖6.1所示。相應(yīng)目錄完成后,整體目錄結(jié)構(gòu)如圖6.2所示圖6.2項(xiàng)目目錄結(jié)構(gòu)圖圖6.1新建包結(jié)構(gòu)圖6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。在6.2中學(xué)習(xí)了通過(guò)SQLiteOpenHelper類創(chuàng)建數(shù)據(jù)庫(kù)。在db包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建DBHelper類繼承SQLiteOpenHelper并重寫onCreate方法、onUpgrade()創(chuàng)建和更新數(shù)據(jù)庫(kù)。具體代碼參考教材P150-1516.5.1
商城的數(shù)據(jù)庫(kù)設(shè)計(jì)6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。6.5.1
商城的數(shù)據(jù)庫(kù)設(shè)計(jì)在db包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建DaoUtils數(shù)據(jù)操作幫助類,主要有插入數(shù)據(jù)、更新指定表中的數(shù)據(jù)、刪除表中符合條件的數(shù)據(jù)、查詢數(shù)據(jù)(需手動(dòng)關(guān)閉數(shù)據(jù)庫(kù)連接)、全查詢(需手動(dòng)關(guān)閉數(shù)據(jù)庫(kù)連接)、關(guān)閉數(shù)據(jù)庫(kù)連接等常用方法。具體代碼參考教材P152-1566.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。(2)在entity包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建User類,用于映射user表內(nèi)用戶信息。(1)、通過(guò)之前開發(fā)的注冊(cè)功能可以知道,用戶表需要用戶名、密碼、手機(jī)號(hào)碼、郵箱、性別等字段。在DBHelper類的onCreate方法里創(chuàng)建t_user表,用于存儲(chǔ)用戶信息。6.5.1.1
用戶表//user表StringuserTable="createtablet_user(namevarchar(25)primarykey,"+"passwordtext,nicktext,gendertext,phonetext,"+"emailtext,authortext);";Log.i("創(chuàng)建user表",userTable);db.execSQL(userTable);publicclassUser{privateStringname;//賬號(hào)privateStringpassword;//密碼privateStringnick;//姓名privateStringgender;//性別privateStringphone;//手機(jī)privateStringemail;//郵箱privateStringauthor;//作者//以下省略get、set方法…}6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。(1)、購(gòu)物車數(shù)據(jù)表主要有主鍵商品ID、商品標(biāo)題、商品價(jià)格、商品品牌、圖片的保存路徑、商品數(shù)量、圖片、店鋪等字段。在DBHelper類的onCreate方法里創(chuàng)建t_cart表,用于存儲(chǔ)購(gòu)物車信息。6.5.1.2購(gòu)物車表//購(gòu)物車數(shù)據(jù)數(shù)據(jù)表,主鍵商品ID、商品標(biāo)題、商品價(jià)格、商品品牌、圖片的保存路徑、商品數(shù)量、圖片、店鋪StringcartTable="createtablet_cart(_idvarchar(10)primarykey,"+"titletext,pricereal,brandvarchar(20),image_urltext,"+"countinteger,imagetext,merchantvarchar(20));";Log.i("創(chuàng)建cart表",cartTable);db.execSQL(cartTable);(2)在entity包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建GoodsCart類,用于映射t_cart表購(gòu)物車信息。packagecom.mingrisoft.mrshop.entity;/***功能:購(gòu)物車中數(shù)據(jù)*/publicclassGoodsCart{privateString_id;//商品ID編號(hào)privateStringtitle;//標(biāo)題privatedoubleprice;//價(jià)錢privateStringbrand;//品牌privateStringimage_url;//圖片的路徑privateintcount;//數(shù)量privateStringimage;//圖片privateStringmerchant;//商家privateCartViewStateviewState;//控件狀態(tài)//以下省略get、set方法…@OverridepublicStringtoString(){return"商品ID:【"+_id+"】商品數(shù)量:【"+count+"】";}}6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。在entity包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建CartViewState類,用于記錄購(gòu)物車中控件的狀態(tài)6.5.1.2購(gòu)物車表packagecom.mingrisoft.mrshop.entity;/***功能:購(gòu)物車中控件的狀態(tài)*/publicclassCartViewState{privatebooleanaddViewState;//添加數(shù)量控件的狀態(tài)privatebooleancutViewState;//減少數(shù)量控件的狀態(tài)privatebooleancheckViewState;//選擇控件的狀態(tài)publicCartViewState(){}publicCartViewState(booleanaddViewState,booleancutViewState,booleancheckViewState){this.addViewState=addViewState;this.cutViewState=cutViewState;this.checkViewState=checkViewState;}//以下省略get、set方法…@OverridepublicStringtoString(){return"checkViewState(控件選中狀態(tài)):"+checkViewState;}}6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。(1)購(gòu)物車數(shù)據(jù)表主要有主鍵商品ID、商品名稱、商品摘要、價(jià)錢、商品照片、推薦分類、商品類型、商品類型名稱、商家等字段。在DBHelper類的onCreate方法里創(chuàng)建t_commodity表,用于存儲(chǔ)商品信息。6.5.1.3商品表//commodity商品表StringcommodityTable="createtablet_commodity(idvarchar(25)primarykey,"+"titletext,descriptiontext,pricereal,imageUrlstext,"+"classificationtext,typeinteger,typeNametext,merchanttext);";Log.i("創(chuàng)建commodity表",commodityTable);db.execSQL(commodityTable);(2)entityentity包新建commodity對(duì)象。參考教材106頁(yè)6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。(1)購(gòu)物車數(shù)據(jù)表主要有主鍵商品ID、商品名稱、商品摘要、價(jià)錢、原價(jià)、商品照片、提示、商品說(shuō)明、商品品牌、評(píng)論、商品類型名稱、商家等字段。在DBHelper類的onCreate方法里創(chuàng)建t_goodDetails表,用于存儲(chǔ)商品詳情信息.6.5.1.4商品詳情表(2)在entity包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建GoodDetails類用于映射商品詳情。參考教材161頁(yè)-162頁(yè)6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。1、在fragment節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建CategoryFragment碎片,繼承帶有標(biāo)題欄的公用TitleFragment類,并實(shí)現(xiàn)AdapterView.OnItemClickListener,OnItemClickListener監(jiān)聽。6.5.2商品分類模塊2、聲明定義相關(guān)全局變量。privateListViewtypeList;//類型列表privateRecyclerViewshopList;//商品列表privateList<String>typeNames;//類型名稱集合privateTypeAdapternameAdapter;//類型適配器privateCommodityAdaptercommodityAdapter;//商品列表適配器privateList<Commodity>commodityList;//商品列表數(shù)據(jù)privateList<ShapeType>selectList;//選擇類型集合Result<List<String>>result=newResult<List<String>>();;Result<List<Commodity>>resultData=newResult<List<Commodity>>();;privateDaoUtilsdaoUtils;//數(shù)據(jù)庫(kù)操作類6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activity類中的getPreferences方法獲取如果Activity僅需要一個(gè)SharedPreferences文件,則可以使用getPreferences方法獲取。因?yàn)橹挥幸粋€(gè)文件,所以不需要提供名稱。該方法的語(yǔ)法格式如下:getPreferences(intmode)其中,參數(shù)mode的取值同getSharedPreferences方法相同。3、新建幀布局命名為fragment_category,采用線性布局,左邊為L(zhǎng)istView組件顯示商品類型,右邊用RecyclerView加載顯示對(duì)應(yīng)類型的商品列表,具體如圖6.3所示。具體代碼參考教材163頁(yè)。6.5.2商品分類模塊圖6.3分類模塊布局圖4、在adapter包節(jié)點(diǎn)上單擊鼠標(biāo)右鍵,在彈出快捷菜單上,選擇新建CommodityAdapter類,繼承MyRecyclerViewAdapter適配器基類。設(shè)置適配器布局,綁定數(shù)據(jù),更新頁(yè)面數(shù)據(jù)。具體代碼參考教材164頁(yè)-165頁(yè)6.5購(gòu)物商城的數(shù)據(jù)庫(kù)編程使用Activi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房產(chǎn)代持合同協(xié)議書范本
- 汽車內(nèi)飾配件采購(gòu)合同
- 離婚后住房分配合同樣本
- 二手施工設(shè)備購(gòu)銷合同
- 家族遺產(chǎn)分配合同
- 借款擔(dān)保反擔(dān)保合同樣本
- 學(xué)校裝修合同案例
- 門面房屋買賣合同
- 太陽(yáng)能發(fā)電政策考核試卷
- 新材料在新能源領(lǐng)域的應(yīng)用考核試卷
- 中央2025年中國(guó)科協(xié)所屬單位招聘社會(huì)在職人員14人筆試歷年參考題庫(kù)附帶答案詳解-1
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 電動(dòng)葫蘆吊裝方案計(jì)劃
- 2025年山東電工電氣集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 造價(jià)咨詢服務(wù)方案進(jìn)度計(jì)劃安排及保證措施
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
- 2024年濰坊工程職業(yè)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- JIS C9335-1-2014 家用和類似用途電器.安全性.第1部分:通用要求
- 甲溝炎治療的護(hù)理與預(yù)防
- 哈工大微電子工藝緒論01單晶硅
- 供養(yǎng)直系親屬有關(guān)文件
評(píng)論
0/150
提交評(píng)論