CriminalIntent項(xiàng)目總結(jié)(一)

一、應(yīng)用功能及前期需求

功能:該應(yīng)用可以詳細(xì)記錄各種辦公室陋習(xí),如隨手將臟盤子丟在休息室水池里,或者自己打印完文件就走,全然不顧公共打印機(jī)里已缺紙。

需求:引入fragment,fragment是一種控制器對象,activity可委派它執(zhí)行任務(wù),通常就是管理用戶界面,受管的用戶界面可以是一整屛的一部分。fragment本身沒有屏幕上顯示視圖能力,需要將它的視圖放置在activity的視圖層級(jí)結(jié)構(gòu)中,fragment視圖才能顯示在屏幕上。


二、項(xiàng)目開發(fā)情況及重要代碼展示

1、創(chuàng)建新項(xiàng)目

重要代碼及過程

Crime類的新增代碼及已生成的getter和setter方法(Crime.java)

UUID是Android框架里的Java工具類,在構(gòu)造方法里,調(diào)用ndomUUID()產(chǎn)生一個(gè)隨機(jī)唯一ID值

fragment的生命周期:fragment生命周期與activity生命周期的一個(gè)關(guān)鍵區(qū)別就在于,fragment的生命周期方法由托管activity而不是操作系統(tǒng)調(diào)用

activity托管UI fragment有如下兩種方式:

(1) 在activity布局中添加fragment(簡單但不靈活)

(2)在activity代碼中添加fragment(唯一可以動(dòng)態(tài)控制fragment的方式)

添加字符串資源(res/values/strings.xml)



fragment視圖的布局文件(fragment_crime.xml)
fragment視圖的布局文件(fragment_crime.xml)


預(yù)覽CrimeFragment布局


覆蓋onCreateView(...)方法(CrimeFragment.java)

fragment的視圖是直接通過調(diào)用LayoutInflater.inflate(...)方法并傳入布局的資源ID生成。第二個(gè)參數(shù)是視圖的父視圖,第三個(gè)參數(shù)告訴布局生成是否將生成的視圖添加給父視圖

生成并使用EditText組件(CrimeFragment.java)

在onTextChanged(...)方法中,調(diào)用charSequence(代表用戶輸入)的toString()方法


監(jiān)聽CheckBox的變化(CrimeFragment.java)

幾乎每次新建activity都需要這樣一段代碼,為避免重復(fù),將其封裝成抽象類,改名為SingleFragmentActivity,設(shè)置超類為AppCompatActivity

FragmentManager類具體管理:

(1) fragment對列;

(2)fragment事務(wù)回退棧;


CrimeActivity托管的CrimeFragment視圖

2、使用RecyclerView顯示列表


crime列表

重要代碼及過程


創(chuàng)建單例及可容納Crime對象的List(CrimeLab.java)


是生成100個(gè)crime


聲明CrimeListActivity為launcher activity(AndroidManifest.xml)


使用RecyclerView


添加Recycle讓View依賴庫


在布局文件中添加RecyclerView視圖(fragment_crime_list.xml)


為CrimeListFragment配置試圖(CrimeListFragment.java)



武裝CrimeAdapter(CrimeListFragment.java)


設(shè)置Adapter(CrimeListFragment..java)

綁定列表項(xiàng)


實(shí)現(xiàn)bind(Crime)方法(CrimeLsitFragment.java)



調(diào)用bind(Crime)方法(CrimeLsitFragment.java)




顯示有序號(hào)的列表

3、使用fragment argument


啟動(dòng)CrimeActivity(CrimeListFragment.java)



空白的CrimeFragment


創(chuàng)建newIntent方法(CrimeActivity.java)
Crime#4列表項(xiàng)的明細(xì)內(nèi)容



編寫newInstance(UUID)方法(CrimeFragment.java)


使用newInstance(UUID)方法(CrimeActivity.java)


4、使用ViewPager


創(chuàng)建ViewPager(CrimePagerActivity.java)



設(shè)置pager adapter(CrimePagerActivity.java)



創(chuàng)建newIntent方法(CrimePagerActivity.java)



設(shè)置廚師分頁顯示項(xiàng)(CrimePageActivity.java)


5、總結(jié)

因?yàn)檫@次7到11章雖然代碼都能實(shí)現(xiàn),也都能運(yùn)行出來,但是總體感覺還是比較亂的,所以博客寫的也有點(diǎn)無厘頭的感覺,希望下次可以寫的更好吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,381評論 25 708
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,892評論 22 665
  • 原文鏈接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影閱讀 32,965評論 6 472
  • 我每次來火車站都來的很早。充足的時(shí)間讓人淡定從容,更重要的是在那段時(shí)間里我能見證到很多。 時(shí)常一個(gè)人靜靜地坐在那兒...
    宓美人閱讀 280評論 3 4
  • 我不是不想舉手 只是清醒讓人不能直視 深淵總在退后出現(xiàn) 我以為只要向前就會(huì)有光明 可也許緊跟的偏差已經(jīng)無法糾正 終...
    邁克爾遜干涉儀閱讀 337評論 0 2