Android диалози alertdialog

Използвайки фрагменти на диалогови прозорци, заради своята архитектура е удобен вариант за приложения, които по-добре да се справят с обрати устройството, като натиснете бутона за връщане назад, по-мащабируема за различни екрани и др

Ако ще се намира на старите примери, а след това да се насладите на тяхното изменение. Не е трудно. Особено, защото развитието на околната среда е силно кълне в използването на остарели класове и методи.

Първо, малко теория. За създаване на диалог трябва да бъде наследен от DialogFragment клас. Създаване на нов клас MyDialogFragment:

Да предположим, че имаме един бутон на дейността на екрана. Причина можете да покажете чрез диалоговия прозорец () метод.

Android диалози alertdialog

Най-вероятно ще видите празен правоъгълник или квадрат.

Тъй като това е само един фрагмент, ние трябва да се обадя фрагменти мениджър и да го помоли да покаже фрагмент.

За да се обадите на диалога ние създаваме инстанция на MyDialogFragment и се обадете на метод шоуто (DialogFragment клас). Методът взима два параметъра: класа на обекта FragmentManager. получен чрез метод getFragmentManager (). и етикет - ID диалог под формата на низ постоянно, чрез който можете да идентифицирате диалоговия прозорец, дали ще има много хора в нашия проект.

Съществува алтернатива витрина чрез сделката.

Имаме празен безполезен фрагмент. Тя се занимава с неговото изграждане. В генерира клас трябва да се преодолеят метод onCreateDialog (). Ако използвате маркирането, тя също така се използва onCreateView () метод. като нормални фрагменти. Най-вероятно няма да изобретяваме колелото, и ще бъде готов за употреба диалогови възможности кутии.

AlertDialog

Най-честата версия на диалоговия прозорец - това AlertDialog. От него и да започнете.

диалогов прозорец AlertDialog е разширение на Dialog клас. и това е най-използваната диалогов прозорец програмист практика. Много често искате да покажете на диалог с Да и Не. Следните елементи могат да се задават в създадените диалоговите прозорци:

  • удар с глава
  • текстово съобщение
  • бутона: един до три
  • списък
  • знамена
  • превключватели

Има два вида от клас - и стандарта на библиотеки със съвместимостта. В този момент най-добре е да се използва при работа с android.support.v7.app.AlertDialog студио стандарт проект.

Диалог с един бутон

Да започнем с един прост пример - ще се покаже на екрана с диалогов прозорец с един бутон.

Android диалози alertdialog

На първо място, ние създаваме клас обект AlertDialog.Builder. преминаване като параметър на връзката на активността. След това, използвайки метода на Builder. Питам за диалог, създаден от (метод setTitle ()) заглавния, текстово съобщение в тялото на (метод setMessage ()) на диалог, (метод setIcon ()) иконата, и кликнете чрез метод, при странно име setPositiveButton на ().

Бутонът за самото лечение е натиснат в диалоговия прозорец, се определя в рамките на setPositiveButton метод (). В nashom случай, ние просто затворите диалоговия прозорец чрез метода на анулира ().

Обърнете внимание на доста необичаен начин да се обадя на серия от методи за верига чрез .setMessage точка ( "Нахранете котката!"). SetIcon (R.drawable.ic_android_cat) и т.н. Този синтаксис често се разглежда в JQuery. С този метод не е необходимо да се използва точка и запетая в края на всеки метод, можете просто залепете всички повиквания. Но можете да използвате обичайния синтаксис.

Твърди избор - пример с два бутона

Android диалози alertdialog

А сега да разгледаме примера за създаване на диалоговия прозорец с два бутона, базирани илюстрация.

Android диалози alertdialog

Общата част на кода си остава същата - клас обект AlertDialog.Builder. Методи за регулиране на бутоните на прозорците и диалогови и събитие да боравите с тях. В AlertDialog можете да добавите само един бутон, за всеки вид: Положителен. Неутрално и отрицателен. . Т.е. максималния възможен брой бутони в диалог. - Три. На имената на бутоните не обръщат внимание, те не носят смисъл, а само определя реда за изход. И в различни версии на Android променен ред. Ето защо, по-стари устройства бутона "Да" може да бъде първата, и новото - последния. За всеки бутон се използва един от методите, префикс. Бътън. които вземат като опциите надпис за бутони и DialogInterface.OnClickListener интерфейс. определя действието при натискане. Потребителят не може да затворите диалоговия прозорец, като кликнете върху всяка точка на екрана, методът се нарича setCancelable () със стойност истина.

три бутона

Помислете за пример с три бутона. На практика няма разлика. Повторете всички предишни стъпки, метод builder.create () се нарича за да се покаже диалоговия прозорец. Например, за да се създаде диалог с бутони мяу, бау, глупакът! код ще изглежда по следния начин:

Android диалози alertdialog

AlertDialog комбо

Ако имате нужда от списък с опции за избор на диалоговия прозорец, вместо на бутоните, използвайте setItems () метод. където трябва да посочите масив от данни, за да се покаже в списъка на диалога. Този метод не може да се използва заедно с setMessage на метод (). така че те да вземат съдържанието на основната част на прозореца.

Избраната Продуктът се появява в кой параметър. Когато ще се появи един от изскачащия уведомлението за меню, което показва избрания котката.

Android диалози alertdialog

AlertDialog с ключове

За да създадете диалогов прозорец с ключове, използвани setSingleChoiceitems () метод, вместо да setItems методът (). Ако вътре onCreateDialog () създава диалогов прозорец. Android система контролира състоянието на списъка с ключове. До текущата операция е активна в следващите покани за диалоговия прозорец помни вече избраните елементи.

Обърнете внимание на следните подробности. Когато изберете, няма да се затвори превключвателят за диалогов прозорец. Поради това е необходимо да се предвиди механизъм за затваряне на прозореца, например, за да добавите бутон. На второ място - setSingleChoiceitems в използван за първите стойности за масива на ключове метод, и втори параметър се използва, за да превключите индекс стойност цяло число, за да бъдат включени в диалоговия прозорец на разговор по подразбиране. Ако искате всички ключове, когато започнете да се изключва, използвате стойност от -1.

Android диалози alertdialog

AlertDialog с флагове

Ако искате да използвате вместо кутии превключвател (квадратчето) за множествена селекция (метод setMultiChoiceItems) която се нуждаете. Кодът е почти идентичен с предишния пример:

Първият параметър в setMultiChoiceItems () метод - масив от стойности за списъка с отметки, вторият параметър - масив от булеви знамена гласи подразбиране списък, когато диалогът за повикване. Например, ние искаме да видим втора точка е била проверена и другите елементи трябва да останат непокътнати. В този случай, като се използва набор от булеви стойности;

Както и в предишния случай, с превключвателите, за диалог с квадратчета трябва да използвате бутона, за да затворите прозореца.

Android диалози alertdialog
Android диалози alertdialog

Предаване на данни към дейността

вие напишете кода, който определя основния дейност за работа с диалогови бутона кликвания.

В кода на всякакви трудности там - определени заглавие, икона, бутон. В изграждането на диалоговия прозорец указания за дейността родител и името на методите в него, които ще отговарят за боравене кликне диалогови бутона - в този случай методи okClicked () и cancelClicked (). Между другото, имената на методите са подчертани с червена линия и IDE ви подканва да създадете тези методи в дейността клас (използвайте Alt клавишната комбинация + Enter).

Върни се в основна дейност кода и да предпише код за натискане на бутоните на диалоговия прозорец:

Android диалози alertdialog

Един пример е написана от принципа - ". Работи, добре" В действителност, по примера не е много компетентен, въпреки че той все още е в документацията намерен.

Правилният избор се счита във втората част на диалоговия кутии DialogFragment на.

AlertDialog със собствен маркиране

Ако стандартния формуляр AlertDialog не сте доволни, можете да излезе с оформлението си и да го свържете чрез setView () метод

Можете да се запознаете с основните принципи на използване на диалогови прозорци. Можете да видите примери за остарели AlertDialog и се опитват да ги приспособят към нови начини за фрагменти.

С появата на новия стил Материал дизайн в библиотеката съвместимост появи android.support.v7.app.AlertDialog клас. което ще ви позволи да се диалогов прозорец със стилна и красива.

Допълнителна информация