(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ Přednáška. PreferenceActivity. Intenty (pokročilé) Vývojářské nástroje

Podobné dokumenty
8. INTENT FILTERS A BRODACAST RECEIVER

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)

Začínáme s vývojem pro Android

Obsah. Životní cyklus activity Context Intent Spouštění aktivit Interakce s uživatelem. Toast. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant

Uživatelské rozhraní. Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 11/29/11

KMI / TMA. Tvorba mobilních aplikací. 8. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

KMI / TMA Tvorba mobilních aplikací

3. ŽIVOTNÍ CYKLUS ACTIVITY

MATURITNÍ PRÁCE dokumentace

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Reliance 3 design OBSAH

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Naším cílem je Vaše spokojenost...

ANDROID. Ing. Ladislav Pešička

DUM 06 téma: Tvorba makra pomocí VBA

Instalace produktu Ontopia. ver (open-source verze)

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Příklad zobrazení toastu s vlastním designem

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

VAŠE NOVÁ APLIKACE NISSAN GROUP EPC PŘÍRUČKA ZAČÍNÁME

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

11/29/11. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant. 12. Přednáška. Zjišťování polohy Google Mapy OverlayItem Zálohování.

JAVA Android Java, letní semestr

BALISTICKÝ MĚŘICÍ SYSTÉM

Možnosti tisku v MarushkaDesignu

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

AutoCAD definice bloku

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

KMI / TMA Tvorba mobilních aplikací

1 Uživatelská dokumentace

Studijní skupiny. 1. Spuštění modulu Studijní skupiny

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Práce s texty, Transformace rastru, Připojení GPS

Programování v Javě I. Únor 2009

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA

zoom-driver Manuál k redakčnímu systému zoom-driver created by virtual-zoom s.r.o.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Základní informace: vysoce komfortnímu prostředí je možné se systémem CP Recorder efektivně pracovat prakticky okamžitě po krátké zaškolení.

Modul IRZ návod k použití

Java a XML. 10/26/09 1/7 Java a XML

Příloha 6. Palety nástrojů

Parametrizace, harmonogram

Programování v Javě I. Leden 2008

Android za hranicemi Hello World

TAXexpert5 modul Kartotéka II.

První kapitola úvod do problematiky

Obslužný software. PAP ISO 9001

Obsah SLEDOVÁNÍ PRÁCE... 4

Fides Software Storage Administrator

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Výčtový typ strana 67

UJO Framework. revoluční architektura beans. verze

Inovace výuky prostřednictvím šablon pro SŠ

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

PŘÍRUČKA ZAČÍNÁME IDENTIFIKOVAT VOZIDLO. Obrazovka Identifi kovat vozidlo je první obrazovka, kterou uvidíte při přihlášení k systému Microcat.

OBSAH. 1. Úvod Požadavky na SW vybavení... 3

Choose a building block. Znalostní báze Kleos. Kleos 6.5 (březen 2019)


DLS V v1.2. Nové funkce. Používání programu DLS V

Veřejné. Aplikace EP2W. Uživatelská příručka pro externího uživatele

IceWarp Outlook Sync Rychlá příručka

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

Aplikace s grafickým uživatelským rozhraním

Nástrojová lišta v editačním poli

Úvod do programovacích jazyků (Java)

Algoritmizace a programování

PŘÍKAZ K ZADÁNÍ SEPA PLATBY V APLIKACI MULTICASH KB

1. Začínáme s FrontPage

11/29/11. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant. 11. Přednáška. Broadcast receiver Timer Alarmy Widgety

Pracovní list č. 14 Microsoft Word 2010 jazykové nástroje, reference I Jazykové nástroje

1 Příručka používání Google Apps

Použití Office 365 na telefonu s Androidem

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Práce na pozadí. Služby. Notifikace

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Prohlížení a editace externích předmětů

Bezdrátové routery LTE & UMTS datové a hlasové brány

TELEFONNí LiNKA PREMiUM PRŮVODCE NASTAVENíM SLuŽBY MEET-ME KONFERENCE

Přehled úprav aplikace e-spis LITE verze

Pracovní prostředí Word 2003 versus Word 2010

Uživatelská příručka práce s aplikací IDT

Inovace a zkvalitnění výuky prostřednictvím ICT Tvorba webových stránek. Ing. Zelinka Pavel Číslo: VY_32_INOVACE_35 17 Anotace:

OmniTouch 8400 Instant Communications Suite. Aplikace My Instant Communicator Desktop. Aplikace My Instant Communicator pro počítač.

HP-2000E UŽIVATELSKÝ MANUÁL

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Testovací metoda. Testovací metoda. public class SimpleTest {

4. UŽIVATELSKÉ ROZHRANÍ

Konvertor diakritiky 3. Instalace

2N VoiceBlue Lite. Návod - Sms Callback. Quick guide. Verze 1.00

MS Windows 7. Milan Myšák. Příručka ke kurzu. Milan Myšák

Instalace a první spuštění Programu Job Abacus Pro

Úvodní příručka. Získání nápovědy Kliknutím na otazník přejděte na obsah nápovědy.

Administrační rozhraní Drupalu

Transkript:

8. Přednáška PreferenceActivity Intenty (pokročilé) Vývojářské nástroje 2

PreferenceActivity Framework umožňující definovat obrazovku s nastavením aplikace pomocí XML uložené v res/xml/ Konzistentní vzhled napříč aplikacemi Nastavení je automaticky uloženo do defaultních SharedPreferences společných pro všechny komponenty aplikace Komponenta se skládá ze 2 částí: XML s layoutem Třída dědící od PreferenceActivity (musí být definována v AndroidManifestu jako každá jiná aktivita) 3

4 PreferenceActivity - XML Každý preference layout je definovaný jako hierarchie začínající elementem PreferenceScreen 1. <?xml version="1.0" encoding="utf-8"?> 2. <PreferenceScreen 3. xmlns:android="http://schemas.android.com/apk/res/android"> 4.... 5. </PreferenceScreen> Je možné do sebe vnořit více obrazovek PreferenceScreen,každá pak bude reprezentována jako položka, po jejímž výběru se zobrazí nová obrazovka s nastavením 1. 2. 3. 4. 5. 6. 7. 8.... <PreferenceScreen android:key="secondprefscreen" android:title="vnorena obrazovka preferences" android:summary="dalsi Preferences">... </PreferenceScreen>...

5 PreferenceActivity - XML V PreferenceScreen je dále možné přidávat těchto 6 elementů CheckBoxPreference jednoduchý Checkbox, který vrací true/false ListPreference po výběru zobrazí radiogroup, kde uživatel může zvolit jednu položku V android:entries se definují položky z res/values/arrays, z kterých uživatel vybírá V android:entryvalues se k nim pak definují hodnoty, které se uloží; opět z res/values/arrays EditTextPreference po výběru zobrazí EditText; vrací String RingtonePreference po výběru zobrazí radiogroup s dostupnými vyzváněcími tóny; vrací String s URI zvoleného tónu Preference Obecná položka, chová se v podstatě jako Button PreferenceCategory kategorie pomocí které od sebe můžeme položky oddělit

6 PreferenceActivity - XML U každé Preference můžeme definovat tyto základní parametry android:title titulek položky (zobrazuje se v 1. řádku) android:summary podrobnější popisek položky (2. řádek) android:defaultvalue defaultní hodnota (použije se, pokud zatím nebyla žádná hodnota uložena) android:key klíč, pod kterém se uloží hodnota do SharedPreferences android:persistent určuje, jestli se tato položka bude ukládat do SharedPreferences (false = nebude) android:enabled určuje, jestli je tato položka aktivní android:dependency pokud se vyplní klíč jiné položky, bude na ní tahle záviset

PreferenceActivity - XML 1. <?xml version="1.0" encoding="utf-8"?> 2. <PreferenceScreen 3. xmlns:android="http://schemas.android.com/apk/res/android"> 4. <PreferenceCategory android:title="prvni kategorie"> 5. <CheckBoxPreference 6. android:title="title" 7. android:defaultvalue="false" 8. android:summary="summary" 9. android:key="checkboxpref" /> 10. <ListPreference 11. android:title="list Preference" 12. android:summary="vyber jedne z hodnot" 13. android:key="listpref" 14. android:defaultvalue="2" 15. android:entries="@array/listarray" 16. android:entryvalues="@array/listvalues" 17. android:dependency="checkboxpref" /> 18. </PreferenceCategory> 19. <PreferenceCategory android:title="druha kategorie"> 20. <RingtonePreference 21. android:name="ringtone Preference" 22. android:summary="vybrat zvoneni" 23. android:title="ringtones" 24. android:key="ringtonepref" /> 25. </PreferenceCategory> 26.</PreferenceScreen> 7

8 PreferenceActivity - Java Ve třídě dědící od PreferenceActivity přiřadíme námi vytvořené XML zavoláním addpreferencesfromresource(id) Konkrétní Preference získáme pomocí findpreference(key); 1. public class Settings extends PreferenceActivity { 2. @Override 3. protected void oncreate(bundle savedinstancestate) { 4. super.oncreate(savedinstancestate); 5. addpreferencesfromresource(r.xml.preferences); 6. 7. ListPreference listpreference = (ListPreference) findpreference("listpref"); 8. //Nastavime hodnoty u listpreference 9. listpreference.setentries(new String[] { "polozka1", "polozka2" }); 10. listpreference.setentryvalues(new String[] { "1", "2" }); 11. } 12. }

9 PreferenceActivity - Java PreferenceActivity je provazana s default SharedPreferences Nastaveni vlastniho PrefFile jako default SharedPreferences 1. 2. 3. 4. 5. PreferenceManager prefmgr = getpreferencemanager(); prefmgr.setsharedpreferencesname("my_preferences"); prefmgr.setsharedpreferencesmode(mode_world_readable); addpreferencesfromresource(r.xml.prefs);

10 PreferenceActivity - Java Pokud potřebujeme sledovat změny v nastavení, implementujeme OnSharedPreferenceChangeListener 1. public class Settings extends PreferenceActivity 2. implements OnSharedPreferenceChangeListener { 3. @Override 4. protected void oncreate(bundle savedinstancestate) { 5. super.oncreate(savedinstancestate); 6. addpreferencesfromresource(r.xml.preferences); 7. 8. // ziskame defaultni SharedPreferences, do kterych zapisuje PreferenceActivity 9. SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 10. // zaregistrujeme OnSharedPreferenceChangeListener 11. sp.registeronsharedpreferencechangelistener(this); 12. 13. } 14. 15. // Zavola se pri jakekoli zmene danych SharedPreferences 16. @Override 17. public void onsharedpreferencechanged(sharedpreferences sp, String key) { 18. // Provedeni potrebnych ukonu, pokud uzivatel zmeni nejake nastaveni 19. } 20.}

Intenty 2 typy Explicitní spouštějí přesně definovanou třídu (viz. přednáška 3) Implicitní nemají přímo definovanou třídu Systém porovná obsah Intentu s Intent filtry komponent a vybere ty, která mohou daný Intent přijmout Většinou se používají ke spouštění komponent jiných aplikací Pokud existuje více potenciálních Aktivit pro daný Intent, může si uživatel zvolit, jakou chce spustit Jednoduché rozšíření funkčnosti programu 11

Intent filtry Určují, pro jaký obsah se může daná komponenta použít V úvahu se berou tyto 3 parametry Intentu: action data (URI i typ) category Definují se v AndroidManifest.xml v tagu dané komponenty 1. <activity 2. android:name=".shareactivity" 3. android:label="myshare Activity"> 4. <intent-filter> 5. <action 6. android:name="android.intent.action.send" /> 7. <category 8. android:name="android.intent.category.default" /> 9. <data 10. android:mimetype="text/plain" /> 11. </intent-filter> 12. </activity> 12

13 Intent filtry action Definuje akci, pro kterou se daná komponenta má spustit Při definování vlastní akce se doporučuje zahrnout celé jméno balíčku např. cz.cvut.example.show_color Intent filtr v AndroidManifest.xml 1. <intent-filter> 2. <action 3. android:name="android.intent.action.send" /> 4.... 5. </intent-filter> Nastavení akce 1. intent.setaction(intent.action_send); 2. //nebo "android.intent.action.send

14 Intent filtry data Definuje, pro jaký typ dat se má komponenta použít Tag <data> může specifikovat URI a/nebo MIME typ URI je rozděleno 4 částí, z nichž každá má svůj atribut v tagu <data> - scheme://host:port/path Intent filtr v AndroidManifest.xml 1. <intent-filter> 2.... 3. <data 4. android:mimetype="text/plain" 5. android:scheme="file" /> 6.... 7. </intent-filter> Nastavení typu a URI 1. intent.settype("text/plain"); 2. intent.setdata(uri.parse("file:///sdcard/folder/file.txt"));

15 Intent filtry kategorie Intent projde intent filtrem, pokud filtr obsahuje všechny v intentu nastavené kategorie Všechny intenty předané do startactivity() obsahují minimálně tuto kategorii: android.intent.category.default Intent filtr v AndroidManifest.xml 1. <intent-filter> 2.... 3. <category android:name="android.intent.category.default" /> 4. <category android:name="android.intent.category.browsable" /> 5.... 6. </intent-filter> Přidání kategorie 1. intent.addcategory(intent.category_browsable); 2. intent.addcategory(intent.category_preference);

Intent filtry edux filtr <activity android:name=".eduxactivity" android:label="edux"> <intent-filter android:label="edux parser"> <action android:name= "android.intent.action.view" /> <category android:name= "android.intent.category.default"/> <category android:name= "android.intent.category.browsable"/> <data android:scheme="https" android:host="edux.fit.cvut.cz" /> </intent-filter> </activity> 16

17 Intenty výběr aktivit Dialog výběru aktivit umožňuje standardně nastavit 1 aktivitu jako defaultní Pro vynucené zobrazení dialogu použijeme Intent.createChooser(Intent,String); Vhodné při sdílení 1. 2. 3. 4. Intent intent=new Intent(Intent.ACTION_SEND); intent.settype("text/plain"); intent.putextra(intent.extra_text, "text, ktery chceme sdilet"); startactivityforresult(intent.createchooser(intent, "Sdilej"), 0);

18 Intenty nejpoužívanější akce Intent.ACTION_CALL Zahájí telefonní hovor Vyžaduje oprávnění android.permission.call_phone Intent.ACTION_DIAL Otevře telefonní aplikaci s předvyplněným číslem Intent.ACTION_EDIT Slouží k editaci dat Intent.ACTION_MAIN Spustí hlavní aktivitu aplikace Intent.ACTION_VIEW Zobrazí data uživateli (zobrazení obrázku, přehrání hudby ) Intent.ACTION_SEND Odešle data Intent.ACTION_DELETE Smaže daná data

19 Intenty nejpoužívanější kategorie Intent.CATEGORY_BROWSABLE Cílová aktivita je uplatněná jako prohlížeč dat předaných odkazem Intent.CATEGORY_HOME Aktivita zobrazuje domovskou obrazovku (náhrada defaultního launcheru) Intent.CATEGORY_LAUNCHER Počáteční aktivita, která se spustí po vyprání z launcheru Intent.CATEGORY_PREFERENCE Cílová aktivita je ovládací panel Další Intenty najdete na http://www.openintents.org

20 Log android.util.log Základní debugovací nástroj Typy ASSERT DEBUG ERROR INFO VERBOSE WARN Při release buildu by se mělo odstranit použití VERBOSE logu Výpis logu na v příkazové řádce na PC adb logcat Je nutné mít povolené Ladění USB Konvence: private static final String TAG = "MyActivity"; Log.v(TAG, "index=" + i);

21 Android SDK vývojářské nástroje Dalvik Debug Monitor Server (ddms) Směrování portů Tvorba snímku obrazovky Informace o vlákně a haldě Logcat výpis logu Informace o procesech a radiu Emulace Příchozích hovorů SMS Lokace Android Emulator (emulator) Založen na QEMU Jedná se o pravou emulaci (překlad ARM instrukcí) Traceview Grafické rozhraní pro zobrazení logů vytvořených pomocí třídy Debug vhodné při optimalizaci výkonu ProGuard Zmenšuje a optimalizuje kód Odstranění nepotřebného a nepoužívaného kódu Přejmenování tříd, proměnných a metod dle sémantické korektnosti Při release buildu je automaticky spoušten Sqlite3 Přístup k SQLite databázím

Draw 9-patch (draw9patch) WYSIWYG editor pro tvorbu 9-patch 9-patch PNG obrázek Má tzv.,,patche v nich se obrázek roztahuje a škáluje Vhodné pro různé velikosti obrazovek Pozadí tlačítek Rámečky Příklad 22

24 Neoficiální nástroje pro vývoj Android Asset Studio Online generátor ikon Z nahraných obrázků Z clipartů Z textu Automatická konverze pro hdpi, mdpi, ldpi atd. http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html UI Prototyping Stencils Sada šablon Android UI komponent pro program Pencil Šablony: http://code.google.com/p/android-ui-utils Pencil: http://pencil.evolus.vn Sqliteman Vizuální nástroj pro práci s SQLite databázemi Velmi jednoduchý http://sqliteman.com/ SQLite Database Browser Alternativa k Sqliteman http://sqlitebrowser.sourceforge.net