Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Фрагменти і бібліотека підтримки

 

Фрагменти з'явилися в API рівня 11 разом з першими планшетами на базі Android і несподіваною потребою в гнучкості призначеного для користувача інтерфейсу. При створенні CriminalIntent був вказаний мінімальний обов'язковий SDK рівня 8, тому ми повинні забезпечити сумісність додатка із старими версіями Android.

 

На щастя, з фрагментами зворотна сумісність досягається відносно легко: досить використати класи фрагментів з бібліотеки підтримки Android.

Бібліотека підтримки(support library) вже є частиною вашого проекту. Вона знаходиться у файлі libs/android - support - v4.jar, куди була додана шаблоном. Бібліотека підтримки включає клас Fragment(android.support.v4.app.Fragment), який може використовуватися на будь-якому облаштуванні Android з API рівня 4 і вище.

 

Клас з бібліотеки підтримки використовується не лише в старих версіях за відсутності «рідного» класу; він також використовується замість нього в нових версіях.

У бібліотеку підтримки також входить важливий клас FragmentActivity(android. support.v4.app.FragmentActivity). Для використання фрагментів потрібні активності, які уміють управляти фрагментами. У Honeycomb і подальших версіях


Android усі субкласи Activity підтримують управління фрагментами. У більше ранніх версіях Activity нічого не знає про фрагменти — як і ваші субкласи Activity. Для сумісності з нижчими рівнями API слідує субклассировать FragmentActivity — субклас Activity, що надає функціональність управління фрагментами нового класу Activity навіть в старих версіях Android.

Облаштування Android 4.2 Облаштування Android 2.3
Стандартна бібліотека Стандартна бібліотека
Android 4.2 Android 2.3

 

 

Бібліотека підтримки

 

 

Мал. 7.9. Місцезнаходження різних класів фрагментів

 

На мал. 7.9 приведені імена цих класів і їх місцезнаходження. Оскільки бібліотека підтримки(і android.support.v4.app.Fragment) знаходиться у вашому застосуванні, її можна безпечно використати незалежно від того, де працює додаток.

 

На панелі Package Explorer знайдіть і відкрийте файл CrimeActivity.java. Замініть суперклас CrimeActivity на FragmentActivity. Заразом видалите шаблонну реалізацію onCreateOptionsMenu(Menu).

 

Лістинг 7.1. Налаштування шаблонного коду(CrimeActivity.java)

 

public class CrimeActivity extends Activity FragmentActivity {

 

@Override

 

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_crime);

 

}

 

@Override

public boolean onCreateOptionsMenu(Menu menu) {


 


Лістинг 7.1(продовження)

 

getMenuInflater().inflate(R.menu.activity_crime, menu); return true;

 

}

 

}

 

Перш ніж продовжувати з CrimeActivity, ми створимо рівень моделі Criminal - Intent. Для цього ми напишемо клас Crime.

 

Створення класу Crime

 

На панелі Package Explorer клацніть правою кнопкою миші на пакеті com.bignerd - ranch.android.criminalintent і виберіть команду New - Class. Введіть ім'я класу Crime, залиште суперклас java.lang.Object і клацніть на кнопці Finish.

 

Додайте в Crime.java наступний код.

 

Лістинг 7.2. Додавання коду в клас Crime(Crime.java)

public class Crime {

private UUID mId;

private String mTitle;

public Crime() {

// Генерирование уникального идентификатора

mId = UUID.randomUUID();

}

}

Потім для властивості mId, доступного тільки для читання, необхідно згенерувати тільки get— метод, а для властивості mTitle — get — і set— методи.

Клацніть правою кнопкою миші після конструктора і виберіть команду Source - Generate Getters and Setters. Щоб згенерувати тільки get-метод для mId, клацніть на стрілці зліва від імені змінної, щоб розкрити список методів, і встановите прапорець тільки поряд з getId(), як показано на мал. 7.10.

 

Лістинг 7.3. Згенеровані get - і set- методи(Crime.java)

 

public class Crime { private UUID mId;

 

private String mTitle;

 

public Crime(){

 

mId = UUID.randomUUID();

 

}

 

public UUID getId(){ return mId;

 

}

 

public String getTitle(){


 

return mTitle;

 

}

 

public void setTitle(String title) { mTitle = title;

 

}

 

}

 

 

Мал. 7.10. Генерування двох get- методів і одного set- методу

 

От і все, що нам знадобиться для класу Crime і рівня моделі CriminalIntent в цій лабораторній роботі.

 

Отже, ми створили рівень моделі і активність, яка виконує хостинг фрагмента в режимі сумісності з версіями Froyo і Gingerbread. А тепер детальніше розглянемо, як активність виконує свої функції хоста.

 




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.