編輯:關於Android編程
單例(singleton)是特殊的Java類,在創建實例時,一個類僅允許創建一個實例。
應用能夠在內存裡存多久,單例就能存在多久,因此將對象列表保存在單例裡可保持crime數據的一直存在,
不管activity、fragment及它們的生命周期發生什麼變化。
要創建單例,需創建一個帶有私有構造方法及get()方法類,其中get()方法返回實例。
如實例已存在,get()方法則直接返回它,如果實例不存在,get()方法會調用構造方法來創建它。
如代碼,通過單例模式保存一個唯一數組,使用getCrimes、getCrime方法調用數組。
代碼:
package com.chunyu.android.criminalintent; import android.content.Context; import java.util.ArrayList; import java.util.UUID; /** * Created by wangchenlong on 14-10-16. */ public class CrimeLab { private ArrayListmCrimes; private static CrimeLab sCrimeLab; private Context mAppContent; private CrimeLab(Context appContent) { mAppContent = appContent; mCrimes = new ArrayList (); //臨時 for(int i=0; i<100; ++i) { Crime c = new Crime(); c.setTitle(Crime # + i); c.setSolved( i%2 == 0 ); mCrimes.add(c); } } public static CrimeLab get(Context c) { if (sCrimeLab == null) sCrimeLab = new CrimeLab(c.getApplicationContext()); return sCrimeLab; } public ArrayList getCrimes() { return mCrimes; } public Crime getCrime(UUID id) { for (Crime c : mCrimes) { if (c.getId().equals(id)) return c; } return null; } }
mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);
相關文章android popwindow實現左側彈出菜單層http://www.jb51.net/article/33533.htm移動App設計的13大精髓http:
RadioButton是單選按鈕,多個RadioButton放在一個RadioGroup控件中,也就是說每次只能有1個RadioButton被選中。而CheckBox是多
Android Gradle Build Error:Some file crunching failed, see logs for details解決辦法錯誤日志:E
本文實例講述了Android實現可使用自定義透明Dialog樣式的Activity。分享給大家供大家參考,具體如下:有時你需要一個對話框,但同時對話框中的內容有更多控制和