MyTetra Share
Делитесь знаниями!
CrimeLab.java
20.04.2017
15:49
Раздел: Android - books - AndroidProgramming2e - 9 Вывод списков и ListFragment
CrimeLab.java
package com.bignerdranch.android.criminalintent; 
 
import android.content.Context; 
 
import java.util.ArrayList; 
import java.util.List; 
import java.util.UUID; 
 
public class CrimeLab { 
    //обратите внимание на префикс s у переменной sCrimeLab. Мы используем это условное обозначение Android, чтобы показать, что переменная sCrimeLab 
    //является статической. 
    private static CrimeLab sCrimeLab; 
 
    private ArrayList<Crime> mCrimes; 
 
    public static CrimeLab get(Context context) { 
        if (sCrimeLab == null) { 
            sCrimeLab = new CrimeLab(context); 
        } 
        return sCrimeLab; 
    } 
 
//    Также обратите внимание на закрытый конструктор CrimeLab. Другие классы не 
//    смогут создать экземпляр CrimeLab в обход метода get(). 
 
    private CrimeLab(Context context) { 
//        предоставим CrimeLab несколько объектов Crime для хранения. В конструкторе CrimeLab создайте пустой список List объектов Crime. 
//        List<E> — интерфейс поддержки упорядоченного списка объектов заданного 
//        типа. Он определяет методы получения, добавления и удаления элементов. Одна 
//        из распространенных реализаций List — ArrayList — использует для хранения 
//        элементов списка обычный массив Java. 
//        ArrayList также является частным случаем 
//        List, и ArrayList и List являются действительными типами для mCrimes. 
//        В строке создания экземпляра mCrimes используется «ромбовидный» синтаксис <>, появившийся в Java 7. Эта сокращенная запись приказывает компилятору 
//        определить тип элементов, которые будут храниться в List, на основании обобщенного аргумента, переданного при объявлении переменной. В данном случае 
//        компилятор заключает, что ArrayList содержит объекты Crime, потому что в объявлении переменной private List<Crime> mCrimes; указан обобщенный аргумент 
//        Crime. 
                mCrimes = new ArrayList<>(); 
        for (int i = 0; i < 10; i++) { 
            Crime crime = new Crime(); 
            crime.setTitle("Crime #" + i); 
            crime.setSolved(i % 2 == 0); // Для каждого второго объекта 
            mCrimes.add(crime); 
        } 
    } 
    // getCrimes() возвращает List 
    public List<Crime> getCrimes() { 
        return mCrimes; 
    } 
    //getCrime(UUID) возвращает объект 
    //Crime с заданным идентификатором 
    public Crime getCrime(UUID id) { 
        for (Crime crime : mCrimes) { 
            if (crime.getId().equals(id)) { 
                return crime; 
            } 
        } 
        return null; 
    } 
} 

 
MyTetra Share v.0.52
Яндекс индекс цитирования