Mobile - игра използване развитие dialogfragment
Този пост е ръководство превод от Android Developers Blog
Започвайки с Android Honeycomb в появиха фрагменти (фрагменти), които могат да се използват повторно в приложение на част от своята потребителски интерфейс и логика. showDialog методи и клас активност dismissDialog са обявени за остарели. Те бяха заменени DialogFragments.
В този пост използвате prodemostriruyu DialogFragments съвместимост с V4, библиотека (за обратна съвместимост с устройства, които се изпълняват по-ранни версии на Android) на примера на един прост диалогов прозорец, който ви позволява да въвеждате текст и да се върне в резултат причинено го активност чрез интерфейса. Тук можете да видите ръководи проектирането на диалози.
Разпределение (оформление)
По-долу е диалоговия прозорец за оформление, което е fragment_edit_name.xml файл.
Android: layout_width = "wrap_content" андроид: layout_height = "wrap_content"
андроид: layout_gravity = "център" андроид: ориентация = "вертикална">
Android: ID = "@ + ID / lbl_your_name" андроид: текст = "Вашето име"
андроид: layout_width = "wrap_content" андроид: layout_height = "wrap_content" >
Тост. makeText (това. "Здравейте," + inputText, Тост. LENGTH_SHORT). шоу ();
Ако обърнете внимание на няколко неща. Първо, нашата дейност се простира FragmentActivity. тъй като ние сме с помощта на библиотеката подкрепа за обратна съвместимост с API на фрагмент. Поради тази причина, ние наричаме getSupportFragmentManager () метод, вместо да getFragmentManager ().
След зареждане тип активност веднага показва EditNameDialog причинява метод му шоу (). Това позволява DialogFragment преговаря статута си с вика фрагмент от него. Натискането на "обратно" затваря прозореца без допълнителен код.
Използването на диалог
Следващата стъпка, нека да се подобри EditNameDialog. предоставянето на възможност за подаване и приноса на потребителите в нашия онлайн активност.
обществени клас EditNameDialog простира DialogFragment изпълнява OnEditorActionListener
За удобство на потребителя, което наричаме фокуса на програмата на EditText използване mEditText.requestFocus (). Като алтернатива, можем да използваме маркера
Клавиатурата на софтуер се показва автоматично, след като потребителят прави акцент върху EditText. За да се предизвика това събитие е софтуер, което наричаме getDialog (). GetWindow (.) SetSoftInputMode (). Имайте предвид, че много от операциите на класа на прозореца, които може да са направили в Dialog клас може да се използва, за да DialogFragment. но сега трябва да се предаде getDialog (). getWindow () вместо getWindow (). Тя ще изглежда така получената таблета диалог smatrfone и можете да видите по-долу:
onEditorAction () метод се задейства, когато потребителят натисне бутона "Готово". Тя се причинява, защото сме посочили за OnEditorActionListener EditText. Той, от своя страна, води до нашия метод за дейността, за да изпратите текст, въведена от потребителя. За тази EditNameDialog обявява EditNameDialogListener интерфейс. което от своя страна изпълнява нашата дейност. Това позволява използването на диалог в много активност. Ние можем да получите дейност. която е предизвикала диалога с метод getActivity (). Сега можем да го наречем onFinishEditDialog метод (). Дейност предварително zakastiv да EditNameDialogListener интерфейс. Архитектурата MVC е общ модел за взаимодействие с тип контролер.
Ние можем да затворите диалоговия прозорец по един от двата начина. В този пример, ние наричаме метода отхвърли () в диалоговия прозорец. Тя може да се плати от дейността, както и метод шоуто ().
Надявам се, че този пост е хвърли светлина върху парчетата, тъй като те са свързани с диалога. Можете да намерите изходния код на този пост на Кодекса на Google.