Android開發之CriminalIntent項目開發(其一)

來源:互聯網
上載者:User

標籤:sdk   bool   new   lib   ica   gets   一點   日期   pre   

前言

  這次的開發項目是一個叫做CriminalIntent的應用,該應用可以詳細記錄各種辦公室陋習。這個應用記載的陋習記錄包括標題、日期和圖片,支援在連絡人中尋找當事人,通過E-mail、Twitter、Facebook或者其他的一些社交應用提出抗議。

引入fragment

  採用fragment而不是activity來管理應用UI,可以繞開Android系統的activity使用規則的限制。

  fragment是一種控制器對象,activity可以委派它執行任務。這些任務通常就是系統管理使用者介面。受管的使用者介面可以是一整屏或者是整屏的一部分。

  根據應用和使用者的需求,可聯合使用fragment和activity來組裝或者重組使用者介面。在整個生命週期過程中,activity視圖還是那個視圖,因此不必擔心會違反Android系統的activity使用規則。

  如何支援同屏顯示列表與明細內容?實際上,這類應用的activity視圖由列表fragment和明細fragment組成。明細視圖負責顯示清單項目的明細內容。選擇不同的清單項目就顯示對應的明細視圖。activity負責以一個明細fragment替換另一個明細fragment。這樣,視圖切換的過程中,也不用銷毀activity。

開發CriminalIntent

  CriminalIntent項目的 開發比較複雜,所以得一步步來。

在Android Studio中增加依賴關係

  要使用的支援庫版fragment來自於AppCompat庫。要使用AppCompat支援庫,項目必須將其列入依賴關係。修改build.gradle檔案。

 

apply plugin: ‘com.android.application‘android {    compileSdkVersion 25    buildToolsVersion "25.0.2"    defaultConfig {        applicationId "classroom.criminalintent"        minSdkVersion 9        targetSdkVersion 25        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘        }    }}dependencies {    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])    androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2‘, {        exclude group: ‘com.android.support‘, module: ‘support-annotations‘    })    compile ‘com.android.support:appcompat-v7:25.2.0‘    testCompile ‘junit:junit:4.12‘    compile ‘com.android.support:recyclerview-v7:25.2.0‘    compile ‘com.android.support:recyclerview-v7:25.2.0‘    compile ‘com.android.support.constraint:constraint-layout:1.0.2‘}
建立Crime類
public class Crime {    private UUID mId;    private String mTitle;    private Date mDate;    private boolean mSolved;    public Crime() {        mId = UUID.randomUUID();        mDate = new Date();    }    public UUID getmId() {        return mId;    }    public String getmTitle() {        return mTitle;    }    public void setmTitle(String mTitle) {        this.mTitle = mTitle;    }    public Date getmDate() {        return mDate;    }    public void setmDate(Date mDate) {        this.mDate = mDate;    }    public boolean ismSolved() {        return mSolved;    }    public void setmSolved(boolean mSolved) {        this.mSolved = mSolved;    }}
建立CrimeFragment類

  建立new java class,並修改代碼。

public class CrimeFragment extends Fragment {}

  注意,繼承Fragment類時,需要繼承Android.support.v4.app這個。這個才是支援庫版的Fragment。

import android.support.v4.app.Fragment;
升級CriminalIntent應用的模型層

  建立CrimeLab.java,並修改代碼。

    public Crime getCrime(UUID id) {        for (Crime crime : mCrimes) {            if (crime.getmId().equals(id)) {                return crime;            }        }        return null;    }

  建立可容納Crime對象的List。

private List<Crime> mCrimes;private CrimeLab(Context context) {        mCrimes = new ArrayList<>();        for (int i = 0; i < 100; i++) {            Crime crime = new Crime();            crime.setmTitle("Crime #" + i);            crime.setmSolved(i % 2 == 0);//Every other one            mCrimes.add(crime);        }    }    public List<Crime> getCrimes() {        return mCrimes;    }    public Crime getCrime(UUID id) {        for (Crime crime : mCrimes) {            if (crime.getmId().equals(id)) {                return crime;            }        }        return null;    }

  其中,這部分代碼是用來產生100個crime的。

for (int i = 0; i < 100; i++) {            Crime crime = new Crime();            crime.setmTitle("Crime #" + i);            crime.setmSolved(i % 2 == 0);//Every other one            mCrimes.add(crime);        }
使用布局與組件建立使用者介面

  在上述圖中,可以對介面進行視圖化管理,相比在後台一點點的累代碼,方便很多。

 

Android開發之CriminalIntent項目開發(其一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.