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 (). Като алтернатива, можем да използваме маркера в XML оформление -Д. Въпреки това, в някои случаи, да поиска програма фокус е за предпочитане. Например OnFocusChangeListener добавихме в onCreateView () метод няма да се нарече ако попитате трик XML оформление -Д.

Клавиатурата на софтуер се показва автоматично, след като потребителят прави акцент върху EditText. За да се предизвика това събитие е софтуер, което наричаме getDialog (). GetWindow (.) SetSoftInputMode (). Имайте предвид, че много от операциите на класа на прозореца, които може да са направили в Dialog клас може да се използва, за да DialogFragment. но сега трябва да се предаде getDialog (). getWindow () вместо getWindow (). Тя ще изглежда така получената таблета диалог smatrfone и можете да видите по-долу:

Mobile - игра използване развитие dialogfragment

onEditorAction () метод се задейства, когато потребителят натисне бутона "Готово". Тя се причинява, защото сме посочили за OnEditorActionListener EditText. Той, от своя страна, води до нашия метод за дейността, за да изпратите текст, въведена от потребителя. За тази EditNameDialog обявява EditNameDialogListener интерфейс. което от своя страна изпълнява нашата дейност. Това позволява използването на диалог в много активност. Ние можем да получите дейност. която е предизвикала диалога с метод getActivity (). Сега можем да го наречем onFinishEditDialog метод (). Дейност предварително zakastiv да EditNameDialogListener интерфейс. Архитектурата MVC е общ модел за взаимодействие с тип контролер.

Ние можем да затворите диалоговия прозорец по един от двата начина. В този пример, ние наричаме метода отхвърли () в диалоговия прозорец. Тя може да се плати от дейността, както и метод шоуто ().

Надявам се, че този пост е хвърли светлина върху парчетата, тъй като те са свързани с диалога. Можете да намерите изходния код на този пост на Кодекса на Google.