<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>android | www.valeriofinazzo.it</title>
	<atom:link href="http://www.valeriofinazzo.it/wordpress/tag/android-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.valeriofinazzo.it/wordpress</link>
	<description>Il sito dell&#039;ingegnere Valerio Finazzo</description>
	<lastBuildDate>Fri, 26 Feb 2016 09:35:11 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>
	<item>
		<title>COOPERATIVE SOCIALI LOMBARDE</title>
		<link>http://www.valeriofinazzo.it/wordpress/2016/02/cooperative-sociali-lombarde/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 22 Feb 2016 13:20:03 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[SOFTWARE]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[cooperative sociali lombardia]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=437</guid>

					<description><![CDATA[<p>Coop Sociali Lombarde è l’app per android che consente di ricercare le cooperative sociali presenti sul territorio lombardo. L&#8217;app localizza su google map le cooperative sociali lombarde. I dati vengono recuperati dal servizio open data offerto da Regione Lombardia, consultabile all&#8217;indirizzo https://www.dati.lombardia.it/resource/tuar-wxya.json. Per ciascuna cooperativa mostra le informazioni di maggiore interesse per l&#8217;utente. E&#8217; presente una &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2016/02/cooperative-sociali-lombarde/" class="more-link">Continua la lettura di <span class="screen-reader-text">COOPERATIVE SOCIALI LOMBARDE</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2016/02/cooperative-sociali-lombarde/">COOPERATIVE SOCIALI LOMBARDE</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-1.png" rel="attachment wp-att-438"><img loading="lazy" class="alignnone size-medium wp-image-438" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-1-300x146.png" alt="banner" width="300" height="146" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-1-300x146.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-1-768x375.png 768w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-1.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Coop Sociali Lombarde è l’app per android che consente di ricercare le cooperative sociali presenti sul territorio lombardo.</p>
<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/iconaAltaRisoluzione.png" rel="attachment wp-att-439"><img loading="lazy" class="alignnone size-medium wp-image-439" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/iconaAltaRisoluzione-300x300.png" alt="iconaAltaRisoluzione" width="300" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/iconaAltaRisoluzione-300x300.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/iconaAltaRisoluzione-150x150.png 150w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/iconaAltaRisoluzione.png 512w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>L&#8217;app localizza su google map le cooperative sociali lombarde.<br />
I dati vengono recuperati dal servizio open data offerto da Regione Lombardia, consultabile all&#8217;indirizzo<br />
<a href="https://www.google.com/url?q=https://www.google.com/url?q%3Dhttps://www.dati.lombardia.it/resource/tuar-wxya.json%26sa%3DD%26usg%3DAFQjCNHWIO8EMDEo1GGXKlwepdkqiIoV-A&amp;sa=D&amp;usg=AFQjCNGu9M9E_lzCmAS0N7-pvt_lO6ZADA" target="_blank">https://www.dati.lombardia.it/resource/tuar-wxya.json</a>.<br />
Per ciascuna cooperativa mostra le informazioni di maggiore interesse per l&#8217;utente.<br />
E&#8217; presente una sezione che estrae delle statistiche e la possibilità di aggiornare i dati in ogni momento.<br />
Nei rilasci verranno estese le funzionalità messe a disposizione dall&#8217;app.</p>
<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144825.png" rel="attachment wp-att-440"><img loading="lazy" class="alignnone size-medium wp-image-440" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144825-300x188.png" alt="device-2016-02-17-144825" width="300" height="188" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144825-300x188.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144825-768x480.png 768w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144825-1024x640.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144928.png" rel="attachment wp-att-441"><img loading="lazy" class="alignnone size-medium wp-image-441" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144928-300x188.png" alt="device-2016-02-17-144928" width="300" height="188" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144928-300x188.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144928-768x480.png 768w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-17-144928-1024x640.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Fcooperative-sociali-lombarde%2F&amp;linkname=COOPERATIVE%20SOCIALI%20LOMBARDE" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Fcooperative-sociali-lombarde%2F&amp;linkname=COOPERATIVE%20SOCIALI%20LOMBARDE" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Fcooperative-sociali-lombarde%2F&amp;linkname=COOPERATIVE%20SOCIALI%20LOMBARDE" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Fcooperative-sociali-lombarde%2F&amp;linkname=COOPERATIVE%20SOCIALI%20LOMBARDE" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Fcooperative-sociali-lombarde%2F&amp;linkname=COOPERATIVE%20SOCIALI%20LOMBARDE" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Fcooperative-sociali-lombarde%2F&#038;title=COOPERATIVE%20SOCIALI%20LOMBARDE" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2016/02/cooperative-sociali-lombarde/" data-a2a-title="COOPERATIVE SOCIALI LOMBARDE"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2016/02/cooperative-sociali-lombarde/">COOPERATIVE SOCIALI LOMBARDE</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RSA LOMBARDIA</title>
		<link>http://www.valeriofinazzo.it/wordpress/2016/02/rsa-lombardia/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 07 Feb 2016 17:07:37 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[SOFTWARE]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[residenza sanitaria assistenziale]]></category>
		<category><![CDATA[rsa lombardia]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=430</guid>

					<description><![CDATA[<p>RSA Lombardia è la l&#8217;app per android che consente di ricercare le RSA presenti sul territorio lombardo. L&#8217;app localizza su google map le residenze sanitario assistenziali lombarde. I dati vengono recuperati dal servizio open data offerto da Regione Lombardia, consultabile all&#8217;indirizzo https://www.dati.lombardia.it/Famiglia/Elenco-RSA-Accreditate/vef4-8fnp. Per ciascuna residenza mostra le informazioni di maggiore interesse per l&#8217;utente. E&#8217; presente &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2016/02/rsa-lombardia/" class="more-link">Continua la lettura di <span class="screen-reader-text">RSA LOMBARDIA</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2016/02/rsa-lombardia/">RSA LOMBARDIA</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner.png" rel="attachment wp-att-431"><img loading="lazy" class="alignnone size-medium wp-image-431" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-300x146.png" alt="banner" width="300" height="146" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-300x146.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner-768x375.png 768w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/banner.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>RSA Lombardia è la l&#8217;app per android che consente di ricercare le RSA presenti sul territorio lombardo.</p>
<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/icona.png" rel="attachment wp-att-434"><img loading="lazy" class="alignnone size-medium wp-image-434" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/icona-300x300.png" alt="icona" width="300" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/icona-300x300.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/icona-150x150.png 150w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/icona.png 512w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>L&#8217;app localizza su google map le residenze sanitario assistenziali lombarde. I dati vengono recuperati dal servizio open data offerto da Regione Lombardia, consultabile all&#8217;indirizzo<br />
https://www.dati.lombardia.it/Famiglia/Elenco-RSA-Accreditate/vef4-8fnp.<br />
Per ciascuna residenza mostra le informazioni di maggiore interesse per l&#8217;utente.<br />
E&#8217; presente una sezione che estrae delle statistiche e la possibilità di aggiornare i dati in ogni momento.<br />
Nei rilasci verranno estese le funzionalità messe a disposizione dall&#8217;app.</p>
<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113616.png" rel="attachment wp-att-432"><img loading="lazy" class="alignnone size-medium wp-image-432" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113616-180x300.png" alt="device-2016-02-02-113616" width="180" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113616-180x300.png 180w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113616.png 768w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113616-614x1024.png 614w" sizes="(max-width: 180px) 100vw, 180px" /></a> <a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113734.png" rel="attachment wp-att-433"><img loading="lazy" class="alignnone size-medium wp-image-433" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113734-180x300.png" alt="device-2016-02-02-113734" width="180" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113734-180x300.png 180w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113734.png 768w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2016/02/device-2016-02-02-113734-614x1024.png 614w" sizes="(max-width: 180px) 100vw, 180px" /></a></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Frsa-lombardia%2F&amp;linkname=RSA%20LOMBARDIA" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Frsa-lombardia%2F&amp;linkname=RSA%20LOMBARDIA" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Frsa-lombardia%2F&amp;linkname=RSA%20LOMBARDIA" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Frsa-lombardia%2F&amp;linkname=RSA%20LOMBARDIA" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Frsa-lombardia%2F&amp;linkname=RSA%20LOMBARDIA" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2016%2F02%2Frsa-lombardia%2F&#038;title=RSA%20LOMBARDIA" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2016/02/rsa-lombardia/" data-a2a-title="RSA LOMBARDIA"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2016/02/rsa-lombardia/">RSA LOMBARDIA</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AGRITURISMI LOMBARDI</title>
		<link>http://www.valeriofinazzo.it/wordpress/2015/09/agriturismi-lombardi/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 18 Sep 2015 20:13:07 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[SOFTWARE]]></category>
		<category><![CDATA[agriturismi lombardi]]></category>
		<category><![CDATA[agriturismi lombardia]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=410</guid>

					<description><![CDATA[<p>Agriturimi Lombardia è la nuova app sviluppata per android che consente di ricercare agevolmente tutti gli agriturismi presenti in Lombardia.Gli agriturismi vengono recuperati dal servizio open data esposto da Regione Lombardia e geolocalizzati tramite le api di google maps. Per ogni agriturismo l&#8217;app recupera i dati identificativi, i dati di contatto e mostra le attività &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2015/09/agriturismi-lombardi/" class="more-link">Continua la lettura di <span class="screen-reader-text">AGRITURISMI LOMBARDI</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2015/09/agriturismi-lombardi/">AGRITURISMI LOMBARDI</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/banner.png"><img loading="lazy" class="size-medium wp-image-412 aligncenter" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/banner-300x146.png" alt="banner" width="300" height="146" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/banner-300x146.png 300w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/banner.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p style="text-align: justify;">Agriturimi Lombardia è la nuova app sviluppata per android che consente di ricercare agevolmente tutti gli agriturismi presenti in Lombardia.<img loading="lazy" class="size-medium wp-image-421 aligncenter" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-09-18-223123-180x300.png" alt="device-2015-09-18-223123" width="180" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-09-18-223123-180x300.png 180w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-09-18-223123.png 480w" sizes="(max-width: 180px) 100vw, 180px" />Gli agriturismi vengono recuperati dal servizio open data esposto da Regione Lombardia e geolocalizzati tramite le api di google maps.</p>
<p style="text-align: justify;">Per ogni agriturismo l&#8217;app recupera i dati identificativi, i dati di contatto e mostra le attività svolte dall&#8217;agriturismo. L&#8217;app consente di contattare telefonicamente l&#8217;agriturismo avviando in automatico il servizio di call, di inviare mail e di accedere al sito web se presente.</p>
<p style="text-align: justify;">L&#8217;app presenta una base dati che consente di implementare una ricerca libera tra le varie informazioni del database. E&#8217; inoltre presente un modulo statistiche che consente di estrarre una serie di statistiche di maggior interesse per l&#8217;utente.</p>
<p style="text-align: center;"><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-11-06-193642.png"><img loading="lazy" class="alignnone size-medium wp-image-426" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-11-06-193642-180x300.png" alt="device-2015-11-06-193642" width="180" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-11-06-193642-180x300.png 180w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2015/09/device-2015-11-06-193642.png 480w" sizes="(max-width: 180px) 100vw, 180px" /></a></p>
<p style="text-align: justify;">L&#8217;app è disponibile <a href="https://play.google.com/store/apps/details?id=it.phinazium.agriturismilombardi" target="_blank">qui </a>per il download.</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2015%2F09%2Fagriturismi-lombardi%2F&amp;linkname=AGRITURISMI%20LOMBARDI" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2015%2F09%2Fagriturismi-lombardi%2F&amp;linkname=AGRITURISMI%20LOMBARDI" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2015%2F09%2Fagriturismi-lombardi%2F&amp;linkname=AGRITURISMI%20LOMBARDI" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2015%2F09%2Fagriturismi-lombardi%2F&amp;linkname=AGRITURISMI%20LOMBARDI" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2015%2F09%2Fagriturismi-lombardi%2F&amp;linkname=AGRITURISMI%20LOMBARDI" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2015%2F09%2Fagriturismi-lombardi%2F&#038;title=AGRITURISMI%20LOMBARDI" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2015/09/agriturismi-lombardi/" data-a2a-title="AGRITURISMI LOMBARDI"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2015/09/agriturismi-lombardi/">AGRITURISMI LOMBARDI</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ANDROID TUTORIAL &#8211; 6 &#8211; VALIDARE UN FORM</title>
		<link>http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-6-validare-un-form/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 27 Jul 2014 14:09:32 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[validation]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=387</guid>

					<description><![CDATA[<p>Dopo aver integrato il database oggi realizziamo il form per l&#8217;inserimento dei dati e agganciamo ad esso una funzione di validazione, che evidenzi i campi obbligatori. Prevediamo tre campi obbligatori: name city address Questi 3 campi vengono definiti come EditText [crayon-64138085d0452583626935/] L&#8217;attributo inputType impone il controllo sul formato del campo. Al salvataggio del form il sistema &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-6-validare-un-form/" class="more-link">Continua la lettura di <span class="screen-reader-text">ANDROID TUTORIAL &#8211; 6 &#8211; VALIDARE UN FORM</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-6-validare-un-form/">ANDROID TUTORIAL – 6 – VALIDARE UN FORM</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p>Dopo aver integrato il database oggi realizziamo il form per l&#8217;inserimento dei dati e agganciamo ad esso una funzione di validazione, che evidenzi i campi obbligatori.</p>
<p>Prevediamo tre campi obbligatori:</p>
<ul>
<li>name</li>
<li>city</li>
<li>address</li>
</ul>
<p>Questi 3 campi vengono definiti come EditText</p><pre class="crayon-plain-tag">&lt;EditText android:id="@+id/cityMarketValue" 
android:inputType="textCapWords" /&gt;</pre><p>L&#8217;attributo inputType impone il controllo sul formato del campo. Al salvataggio del form il sistema invoca la funzione di validazione che verificherà se il campo è valorizzato o no tramite la routine</p><pre class="crayon-plain-tag">Boolean controllo = true;
if (name.getText().toString().length()==0) {
controllo = false;
name.setError(getResources().getString(R.string.mandatory));
}
if (city.getText().toString().length()==0) {
controllo = false;
city.setError(getResources().getString(R.string.mandatory));
}
if (address.getText().toString().length()==0) {
controllo = false;
address.setError(getResources().getString(R.string.mandatory));
}
return controllo;</pre><p>Qualora il controllo fallisse la classe  EditText mette a disposizione il metodo setErrorr che consente di abilitare il messaggio di errore attivo sul singolo campo, come si può vedere in foto</p>
<p><a href="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2014/07/mandatory.png"><img loading="lazy" class="alignnone size-medium wp-image-389" src="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2014/07/mandatory-234x300.png" alt="mandatory" width="234" height="300" srcset="http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2014/07/mandatory-234x300.png 234w, http://www.valeriofinazzo.it/wordpress/wp-content/uploads/2014/07/mandatory.png 318w" sizes="(max-width: 234px) 100vw, 234px" /></a></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-6-validare-un-form%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20VALIDARE%20UN%20FORM" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-6-validare-un-form%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20VALIDARE%20UN%20FORM" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-6-validare-un-form%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20VALIDARE%20UN%20FORM" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-6-validare-un-form%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20VALIDARE%20UN%20FORM" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-6-validare-un-form%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20VALIDARE%20UN%20FORM" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-6-validare-un-form%2F&#038;title=ANDROID%20TUTORIAL%20%E2%80%93%206%20%E2%80%93%20VALIDARE%20UN%20FORM" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-6-validare-un-form/" data-a2a-title="ANDROID TUTORIAL – 6 – VALIDARE UN FORM"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-6-validare-un-form/">ANDROID TUTORIAL – 6 – VALIDARE UN FORM</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ANDROID TUTORIAL &#8211; 5 – INTEGRARE UN DATABASE</title>
		<link>http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-5-integrare-un-database/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 26 Jul 2014 14:47:34 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[database]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=374</guid>

					<description><![CDATA[<p>In Android molte applicazioni necessitano di un database per conservare le informazioni per un uso successivo. Realizzeremo insieme un crud, ovvero un app che consente le tipiche operazioni di gestione di una entità: creazione, ricerca, aggionrnamento e cancellazione. Il database di riferimento è SQLite, il package offerto da android è android.database.sqlite. Per poter accedere al nostro &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-5-integrare-un-database/" class="more-link">Continua la lettura di <span class="screen-reader-text">ANDROID TUTORIAL &#8211; 5 – INTEGRARE UN DATABASE</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-5-integrare-un-database/">ANDROID TUTORIAL – 5 – INTEGRARE UN DATABASE</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">In Android molte applicazioni necessitano di un database per conservare le informazioni per un uso successivo. Realizzeremo insieme un crud, ovvero un app che consente le tipiche operazioni di gestione di una entità:<br />
creazione, ricerca, aggionrnamento e cancellazione.<br />
Il database di riferimento è <a title="sqlite" href="http://www.sqlite.org/" target="_blank">SQLite</a>, il package offerto da android è <a title="android.database.sqlite" href="http://developer.android.com/reference/android/database/sqlite/package-summary.html" target="_blank">android.database.sqlite</a>.</p>
<p style="text-align: justify;">Per poter accedere al nostro database occorre estendere la classe SQLiteOpenHelper, che prevede l&#8217;implementazione dei metodi creazione del database.</p>
<p></p><pre class="crayon-plain-tag">public class DatabaseHelper extends SQLiteOpenHelper {

public static final String DB = "gestoremarket";
public static final int SCHEMA_VERSION = 1;
public static final String DATABASE_NAME = "gestoremarket.db";

public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, SCHEMA_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {}

@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {}

}</pre><p></p>
<p style="text-align: justify;">Il costruttore prevede la creazione di un database con una determinata versione e sono previsti i metodi che verranno lanciati alla creazione del database e/o al suo aggiornamento., All&#8217;interno dei metodi è possibile lanciare degli script sql per aggiornare il database.</p>
<p style="text-align: justify;">A questo punto dobbiamo definire la classe per la gestione della nostra tabella, tale classe implementa l&#8217;interfaccia BaseColumns, che prevede la presenza di una primary key _ID (tale approccio non è obbligatorio, ma è consigliato da Google per uno sviluppo più armonico)</p>
<p style="text-align: justify;">Nel nostro caso prevediamo una classe così fatta</p>
<p></p><pre class="crayon-plain-tag">public class MarketTable implements BaseColumns {

public static String TABLE_NAME = "MARKET";
public static String NAME = "NAME";
public static String CITY = "CITY";
public static String ADDRESS = "ADDRESS";
public static String CANCELLATO = "CANCELLATO";

public static String[] COLUMNS = new String[] {_ID, NAME, CITY, ADDRESS, CANCELLATO };

}</pre><p></p>
<p style="text-align: justify;">Non resta che definire la classe DAO responsabile dei metodi di lettura e scrittura sul nostro db</p>
<p></p><pre class="crayon-plain-tag">public class MarketDao {

private DatabaseHelper databaseHelper;

public MarketDao(Context context) {
databaseHelper = new DatabaseHelper(context);
}

public List&lt;Market&gt; getAll() {
 
SQLiteDatabase database = databaseHelper.getReadableDatabase();
 
 List&lt;Market&gt; list = new ArrayList&lt;Market&gt;();
 
 String sql = 
 String.format("select " +
 "market._id, " +
 "market.name, " +
 "market.city, " +
 "market.address " +
 "from market " +
 "where market.cancellato = 0") ;
 Log.i(DatabaseHelper.DATABASE_NAME, sql); 
 Cursor cursor = database.rawQuery(sql, null);
 
 cursor.moveToFirst();
 while (!cursor.isAfterLast()) {
 Market market = getMarket(cursor);
 list.add(market);
 cursor.moveToNext();
 }
 
 cursor.close();
 
 database.close();
 
 return list;
}

public void delete(Long id) {
SQLiteDatabase database = databaseHelper.getWritableDatabase();
String sql = 
String.format("update market " +
"set cancellato = 1 " +
" where _id = %d ", id) ;
Log.i(DatabaseHelper.DATABASE_NAME, sql);
database.execSQL(sql);
database.close();
}

public void save(Market item) {
SQLiteDatabase database = databaseHelper.getWritableDatabase();
ContentValues contentValues = creaContentValues(item);
if (item.getId()==null) {
long insertOrThrow = database.insertOrThrow(MarketTable.TABLE_NAME, null, contentValues);
item.setId(insertOrThrow);
} else
database.update(MarketTable.TABLE_NAME, contentValues, " _id = " + item.getId(), null);
database.close();
}

private ContentValues creaContentValues(Market item) {
ContentValues contentValues = new ContentValues();
contentValues.put(MarketTable._ID, item.getId());
contentValues.put(MarketTable.NAME, item.getName());
contentValues.put(MarketTable.CANCELLATO, item.getCancellato());
contentValues.put(MarketTable.CITY, item.getCity());
contentValues.put(MarketTable.ADDRESS, item.getAddress());
return contentValues;
}
}</pre><p></p>
<p style="text-align: justify;">Dall&#8217;analisi della classe si vede come la classe Helper permetta di accedere al database in lettura e/o scrittura tramite i metodi</p>
<p></p><pre class="crayon-plain-tag">SQLiteDatabase database = databaseHelper.getWritableDatabase();</pre><p></p><pre class="crayon-plain-tag">SQLiteDatabase database = databaseHelper.getReadableDatabase();</pre><p></p>
<p style="text-align: justify;">Ottenuta l&#8217;istanza del database la classe mette a disposizione dei metodi per la gestione dei dati, che permettono di eseguire del codice sql oppure tramite l&#8217;uso di classi container, tipo ContentValues, che consentono l&#8217;interazione con il database anche con una limitata conoscenza di sql.</p>
<p style="text-align: justify;">Buona sperimentazione.</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-5-integrare-un-database%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%205%20%E2%80%93%20INTEGRARE%20UN%20DATABASE" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-5-integrare-un-database%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%205%20%E2%80%93%20INTEGRARE%20UN%20DATABASE" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-5-integrare-un-database%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%205%20%E2%80%93%20INTEGRARE%20UN%20DATABASE" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-5-integrare-un-database%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%205%20%E2%80%93%20INTEGRARE%20UN%20DATABASE" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-5-integrare-un-database%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%205%20%E2%80%93%20INTEGRARE%20UN%20DATABASE" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F07%2Fandroid-tutorial-5-integrare-un-database%2F&#038;title=ANDROID%20TUTORIAL%20%E2%80%93%205%20%E2%80%93%20INTEGRARE%20UN%20DATABASE" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-5-integrare-un-database/" data-a2a-title="ANDROID TUTORIAL – 5 – INTEGRARE UN DATABASE"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2014/07/android-tutorial-5-integrare-un-database/">ANDROID TUTORIAL – 5 – INTEGRARE UN DATABASE</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ANDROID TUTORIAL &#8211; 4 &#8211; GESTIRE L&#8217;ACTION BAR</title>
		<link>http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-4-gestire-laction-bar/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 19 Jun 2014 21:31:43 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[action bar]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=212</guid>

					<description><![CDATA[<p>Nell&#8217;articolo di oggi vediamo l&#8217;utilizzo dell&#8217;action bar, il componente introdotto con Android 3.0 (Api level 11) e supportato con le versioni precedenti tramite la Support Library. L&#8217;action bar è un componente che svolge diverse funzioni: innanzitutto identifica l&#8217;app, permette di gestire funzioni contestuali alla navigazioni e di avere accesso immediato a funzioni trasversali come potrebbe essere &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-4-gestire-laction-bar/" class="more-link">Continua la lettura di <span class="screen-reader-text">ANDROID TUTORIAL &#8211; 4 &#8211; GESTIRE L&#8217;ACTION BAR</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-4-gestire-laction-bar/">ANDROID TUTORIAL – 4 – GESTIRE L’ACTION BAR</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p style="color: #0d293f; text-align: justify;">Nell&#8217;articolo di oggi vediamo l&#8217;utilizzo dell&#8217;action bar, il componente introdotto con Android 3.0 (Api level 11) e supportato con le versioni precedenti tramite la <a style="color: #2675b5;" href="http://developer.android.com/tools/support-library/index.html">Support Library</a>. L&#8217;action bar è un componente che svolge diverse funzioni: innanzitutto identifica l&#8217;app, permette di gestire funzioni contestuali alla navigazioni e di avere accesso immediato a funzioni trasversali come potrebbe essere il modulo search.</p>
<p style="color: #0d293f; text-align: justify;">Nell&#8217;action bar sono individuate 4 aree funzionali con queste caratteristichie:</p>
<p style="color: #0d293f; text-align: justify;"><img loading="lazy" src="http://developer.android.com/design/media/action_bar_basics.png" alt="" width="580" height="90" border="0" /></p>
<ol style="color: #143c5d; text-align: justify;">
<li>contiene l&#8217;icona dell&#8217;app ed eventualmente il pulsante Up per tornare all&#8217;activity precedente</li>
<li>permette di navigare tra i contenuti di un app</li>
<li>contiene i pulsanti che si attivano in base al contesto</li>
<li>è la cosidetta area di overflow, contiene in formato lista, le azioni che non sono visualizzabili per mancanza di spazio</li>
</ol>
<div style="color: #0d293f; text-align: justify;">Il numero di pulsanti visibili nell&#8217;action bar è determinato dalla risoluzione dello schermo, come regola non possono occupare più del 50% della larghezza e allo stato attuale le regole sono riassunte nello schema successivo:</div>
<div style="color: #0d293f; text-align: justify;"><img loading="lazy" src="http://developer.android.com/design/media/action_bar_pattern_table.png" alt="" width="580" height="300" border="0" /></div>
<p style="color: #0d293f; text-align: justify;">Qualora lo spazio non sia sufficiente le azioni sono disponibili nell&#8217;area di overflow, oppure è possibile attivare una bottom area in cui tutto lo spazio a disposizione è occupato dalle azioni rimaste.</p>
<p style="color: #0d293f; text-align: justify;">Passiamo alla nostra app e attiviamo la action bar. Nel nostro esempio l&#8217;app deve essere compatibile con dispositivi con Android 2.1, pertanto definiamo la nostra activity principale così</p>
<p></p><pre class="crayon-plain-tag">public class MainActivity extends ActionBarActivity {}</pre><p>dove ActionBarActivity è una classe della Support Library disponibile nel package android.support.v7.app;</p>
<p style="color: #0d293f; text-align: justify;">A questo punto l&#8217;action bar è già disponibile e mostra la nostra icona e nient&#8217;altro. Qualora volessimo rimuoverla è sufficiente nasconderla in modo semplice:</p>
<p></p><pre class="crayon-plain-tag">ActionBar actionBar = getSupportActionBar(); 
actionBar.hide();</pre><p>Adesso abilitiamo il pulsante di Up che consente di gestire la navigazione ed accedere alle funzioni precedentemente visualizzate. Per farlo sono sufficienti due comandi:</p><pre class="crayon-plain-tag">getSupportActionBar().setHomeButtonEnabled(true);</pre><p>(abilita il comportamento sull&#8217;icona dell&#8217;app )</p>
<p style="color: #0d293f; text-align: justify;">o</p>
<p></p><pre class="crayon-plain-tag">getSupportActionBar().setDisplayHomeAsUpEnabled(true);</pre><p>(abilita una icona dedicata )</p>
<p style="color: #0d293f; text-align: justify;">Per gestire il comportamento occorre implementare il metodo onOptionsItemSelected(MenuItem item) nella nostra activity e in particolare per gestire l&#8217;evento occorre implementare qualcosa di simile:</p>
<p></p><pre class="crayon-plain-tag">@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { case android.R.id.home: finish(); }
return super.onOptionsItemSelected(item);
}</pre><p>In questo caso mi limito a chiudere l&#8217;app, quello che è importante notare è come il pulsante di Home sia identificato univocamente tramite la costante android.R.id.home</p>
<p style="color: #0d293f; text-align: justify;">Se adesso volessimo aggiungere dei pulsanti occorre definire un menu in formato xml</p>
<p></p><pre class="crayon-plain-tag">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;menu xmlns:android="http://schemas.android.com/apk/res/android"   
xmlns:yourapp="http://schemas.android.com/apk/res-auto" &gt;
&lt;item android:id="@+id/edit" 
android:title="@string/edit" 
android:icon="@drawable/ic_action_edit" 
yourapp:showAsAction="ifRoom" /&gt;
&lt;item android:id="@+id/delete" 
android:title="@string/delete" 
android:icon="@drawable/ic_action_cancel" 
yourapp:showAsAction="ifRoom" /&gt;
&lt;/menu&gt;</pre><p>Per gestire l&#8217;action bar Big G ci mette a disposizione un set di icone per gli usi più comuni disponibili <a style="color: #2675b5;" href="http://developer.android.com/design/downloads/index.html">qui</a>. E&#8217; interessante notare l&#8217;attributo showAsAction, che stabilisce il comportamento del pulsante. Big G consiglia di usare il valore ifRoom con cui consentiamo al sistema di spostare il pulsante nell&#8217;area di overflow qualora lo spazio non sia sufficiente.</p>
<p style="color: #0d293f; text-align: justify;">A questo per abilitare il pulsante implementiamo il metodo onCreateOptionsMenu, in questo caso mi trovo all&#8217;interno di un fragment</p>
<p style="color: #0d293f; text-align: justify;">@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.action_list_market, menu); super.onCreateOptionsMenu(menu, inflater); }</p>
<p style="color: #0d293f; text-align: justify;">e posso pilotare la sua comparsa tramite il comando setHasOptionsMenu, che mi permette di attivarlo in base alle mie esigenze.</p>
<p style="color: #0d293f; text-align: justify;">Nel mio caso ho collegato il menù ad una lista in modo che si attivi alla selezione di un elemento.</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-4-gestire-laction-bar%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%204%20%E2%80%93%20GESTIRE%20L%E2%80%99ACTION%20BAR" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-4-gestire-laction-bar%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%204%20%E2%80%93%20GESTIRE%20L%E2%80%99ACTION%20BAR" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-4-gestire-laction-bar%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%204%20%E2%80%93%20GESTIRE%20L%E2%80%99ACTION%20BAR" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-4-gestire-laction-bar%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%204%20%E2%80%93%20GESTIRE%20L%E2%80%99ACTION%20BAR" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-4-gestire-laction-bar%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%204%20%E2%80%93%20GESTIRE%20L%E2%80%99ACTION%20BAR" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-4-gestire-laction-bar%2F&#038;title=ANDROID%20TUTORIAL%20%E2%80%93%204%20%E2%80%93%20GESTIRE%20L%E2%80%99ACTION%20BAR" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-4-gestire-laction-bar/" data-a2a-title="ANDROID TUTORIAL – 4 – GESTIRE L’ACTION BAR"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-4-gestire-laction-bar/">ANDROID TUTORIAL – 4 – GESTIRE L’ACTION BAR</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ANDROID TUTORIAL &#8211; 2 &#8211; GESTIRE LO SPINNER</title>
		<link>http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-2-gestire-lo-spinner/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 19 Jun 2014 21:25:40 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[spinner]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=207</guid>

					<description><![CDATA[<p>Uno dei componenti più importanti di Android è lo spinner, ovvero la versione android della classica combobox. La gestione dello spinner può essere fatta in maniera dichiarativa o in maniera programmatica. In maniera dichiarativa occorre definire per il nostro spinner la sua fonte dati, disponibile in una delle risorse xml. Ad esempio possiamo dichiarare uno &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-2-gestire-lo-spinner/" class="more-link">Continua la lettura di <span class="screen-reader-text">ANDROID TUTORIAL &#8211; 2 &#8211; GESTIRE LO SPINNER</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-2-gestire-lo-spinner/">ANDROID TUTORIAL – 2 – GESTIRE LO SPINNER</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p style="color: rgb(13, 41, 63); text-align: justify;">Uno dei componenti più importanti di Android è lo spinner, ovvero la versione android della classica combobox. La gestione dello spinner può essere fatta in maniera dichiarativa o in maniera programmatica.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">In maniera dichiarativa occorre definire per il nostro spinner la sua fonte dati, disponibile in una delle risorse xml. Ad esempio possiamo dichiarare uno spinner che contiene l&#8217;elenco degli anni in questo modo:</p>
<p></p><pre class="crayon-plain-tag">&lt;Spinner 
android:id="@+id/spinnerAnnoSottoscrizione" 
style="@style/Spinner"  
android:entries="@array/annoIscrizione" /&gt;</pre><p>l&#8217;attributo id individua unicamente il nostro spinner all&#8217;interno dell&#8217;app, l&#8217;attributo style contiene le specifiche grafiche dell&#8217;oggetto e il tag entries individua l&#8217;elenco dei valori che lo spinner può assumere. Tale elenco è definito nel file strings.xml</p><pre class="crayon-plain-tag">&lt;string-array name="annoIscrizioneLabel"&gt;
&lt;item&gt;2012&lt;/item&gt;
&lt;item&gt;2011&lt;/item&gt;
&lt;/string-array&gt;</pre><p>In questo modo abbiamo definito uno spinner che conterrà due voci (2012 e 2011), selezionabili dall&#8217;utente.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Possiamo ottenere lo stesso risultato programmaticamente in questo modo.</p>
<p></p><pre class="crayon-plain-tag">ArrayAdapter&lt;String&gt; adapter= 
new ArrayAdapter&lt;String&gt;
(this,  android.R.layout.simple_spinner_item  , 
getResources().getStringArray(R.array.annoIscrizioneLabel));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner =(Spinner) findViewById(R.id.annoIscrizioneLabel);
spinner.setAdapter( adapter );</pre><p>&nbsp;</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">All&#8217;interno della nostra activity recuperiamo il nostro spinner e settiamo l&#8217;adapter che fa al caso nostro. L&#8217;Adapter è un oggetto che definisce la logica di visualizzazione dello spinner e dei suoi elementi. In questo esempio ho usato il simple_spinner_item, che definisce l&#8217;aspetto grafico dello spinner, e il simple_spinner_dropdown_item, che definisce l&#8217;aspetto grafico dell&#8217;elenco mostrato per la selezione.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Se occorre modificare l&#8217;aspetto dello spinner o rendere dinamico l&#8217;elenco delle voci da mostrare la gestione programmatica è la scelta obbligata.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Android mette a disposizione adapter che soddisfano la maggior parte delle nostre esigenze, ma se il nostro layout è complesso o la logica di business è più evoluta possiamo definire un nostro adapter, estendendo una delle classi già presenti.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Per gestire l&#8217;effetto di selezione dobbiamo definire un listener, tramite la chiamata</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">spinner .setOnItemSelectedListener(this);</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Con questa chiamata sto dicendo che l&#8217;activity è responsabile di implementare l&#8217;interfaccia OnItemSelectedListener e di conseguenza il metodo onItemSelected. Avrei potuto in alternativa definire una inner class e demandare a lei la gestione degli eventi di selezione. Personalmente scelgo cosa fare in base alla complessità della classe.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Il listener (sia inner class che activity) si attiva per ogni evento di selezione. Fate attenzione, perchè si attiva anche allo start della nostra activity, quando viene popolato il nostro oggetto.</p>
<p style="color: rgb(13, 41, 63); text-align: justify;">Buona sperimentazione.</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-2-gestire-lo-spinner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%202%20%E2%80%93%20GESTIRE%20LO%20SPINNER" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-2-gestire-lo-spinner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%202%20%E2%80%93%20GESTIRE%20LO%20SPINNER" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-2-gestire-lo-spinner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%202%20%E2%80%93%20GESTIRE%20LO%20SPINNER" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-2-gestire-lo-spinner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%202%20%E2%80%93%20GESTIRE%20LO%20SPINNER" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-2-gestire-lo-spinner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%202%20%E2%80%93%20GESTIRE%20LO%20SPINNER" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-2-gestire-lo-spinner%2F&#038;title=ANDROID%20TUTORIAL%20%E2%80%93%202%20%E2%80%93%20GESTIRE%20LO%20SPINNER" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-2-gestire-lo-spinner/" data-a2a-title="ANDROID TUTORIAL – 2 – GESTIRE LO SPINNER"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-2-gestire-lo-spinner/">ANDROID TUTORIAL – 2 – GESTIRE LO SPINNER</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ANDROID TUTORIAL &#8211; 1 &#8211; GESTIRE UN BANNER</title>
		<link>http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-1-gestire-un-banner/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 19 Jun 2014 21:22:45 +0000</pubDate>
				<category><![CDATA[ANDROID]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[banner]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=204</guid>

					<description><![CDATA[<p>Nell&#8217;articolo di oggi vedremo come gestire al meglio il banner pubblicitario all&#8217;interno della nostra app. Quello che vedremo ben si adatta anche a situazioni in cui si vuole che solo una parte dello scherma supporti lo scrolling. Sulle modalità per integrare un banner, rimando al sito di AdMob, recentemente acquisito da Google, dove potete scaricare l&#8217;SDK &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-1-gestire-un-banner/" class="more-link">Continua la lettura di <span class="screen-reader-text">ANDROID TUTORIAL &#8211; 1 &#8211; GESTIRE UN BANNER</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-1-gestire-un-banner/">ANDROID TUTORIAL – 1 – GESTIRE UN BANNER</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p style="color: #0d293f; text-align: justify;">Nell&#8217;articolo di oggi vedremo come gestire al meglio il banner pubblicitario all&#8217;interno della nostra app. Quello che vedremo ben si adatta anche a situazioni in cui si vuole che solo una parte dello scherma supporti lo scrolling.</p>
<p style="color: #0d293f; text-align: justify;">Sulle modalità per integrare un banner, rimando al sito di <a style="color: #2675b5;" href="https://www.admob.com/">AdMob</a>, recentemente acquisito da Google, dove potete scaricare l&#8217;SDK da integrare.</p>
<p style="color: #0d293f; text-align: justify;">E&#8217; mio interesse mostrare le modalità per integrare il banner all&#8217;interno dell&#8217;app, in modo da rendere l&#8217;operazione facile e indolore.</p>
<p style="color: #0d293f; text-align: justify;"><strong>Approccio Dichiarativo</strong></p>
<p style="color: #0d293f; text-align: justify;">E&#8217; possibile inserire direttamente il seguente blocco xml all&#8217;interno del nostro layout. Il parametro keywords deve essere valorizzato con l&#8217;ID Editore rilasciato da AdMob all&#8217;atto della creazione del profilo della nostra app.</p>
<p></p><pre class="crayon-plain-tag">&lt;com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:keywords="xxxxxxxxxxx" /&gt;</pre><p>In questo modo alla visualizzazione del nostro layout verrà anche visualizzato il banner. Con questo approccio, se vogliamo avere il banner in più activity della nostra app, dobbiamo inserire il blocco in ogni layout relativo all&#8217;activity.</p>
<p style="color: #0d293f; text-align: justify;"><strong>Approccio Programmatico</strong></p>
<p style="color: #0d293f; text-align: justify;">E&#8217; possibile gestire il banner programmaticamente, ovvero instanziare l&#8217;oggetto e configurarlo in uno dei metodi legati al ciclo di vita della nostra Activity, tipicamente il metodo onCreate.</p>
<p></p><pre class="crayon-plain-tag">AdView adView = new AdView(this, AdSize.BANNER, Costanti.MY_AD_UNIT_ID);
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
layout.addView(adView);
AdRequest request = new AdRequest();
adView.loadAd(request);</pre><p>Con questo approccio possiamo strutturare le nostre classi in modo da rendere trasparente per le nostre activity l&#8217;invocazione del banner, ad esempio tramite una activity astratta responsabile della gestione del banner, da cui ereditare le activity responsabili della logica della nostro app.</p>
<p style="color: #0d293f; text-align: justify;"><strong>Tipici Problemi</strong></p>
<p style="color: #0d293f; text-align: justify;">Il problema che si può riscontrare è la mancata visualizzazione del banner. Fortunamente i log di Android ci danno tutte le indicazioni sulle possibili cause. Un motivo può essere il layout con spazio insufficiente per mostrare il banner e questo avviene tipicamente su dispositivi con display piccoli, dove abbiamo previsto di usare del padding. In questo caso l&#8217;errore che Android mostra è Not enough space to show ad! Wants: &lt;320, 50&gt;, Has: &lt;270, 430&gt;. Il problema si risolve agganciando il nostro banner al layout con una dimensione sufficiente a contenere il banner.</p>
<p style="color: #0d293f; text-align: justify;">Altro problema è la posizione del banner, che può essere infelice o nella posizione non attesa. Per assicurarci la posizione desiderata possiamo usare il RelativeLayout e posizionare il banner nella posizione desiderata. Nell&#8217;esempio di sotto ho posizionato il banner in basso rispetto al container e l&#8217;oggetto ScrollView al di sopra del banner. In questo modo garantiamo la visualizzazione del banner nella posizione desiderata.</p>
<p></p><pre class="crayon-plain-tag">&lt;RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"    &gt;
&lt;LinearLayout android:layout_alignParentBottom="true" /&gt;
&lt;ScrollView android:layout_above="@id/mainAdv" &gt;
&lt;/RelativeLayout&gt;</pre><p>&nbsp;</p>
<p style="color: #0d293f; text-align: justify;">
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-1-gestire-un-banner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%201%20%E2%80%93%20GESTIRE%20UN%20BANNER" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-1-gestire-un-banner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%201%20%E2%80%93%20GESTIRE%20UN%20BANNER" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-1-gestire-un-banner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%201%20%E2%80%93%20GESTIRE%20UN%20BANNER" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-1-gestire-un-banner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%201%20%E2%80%93%20GESTIRE%20UN%20BANNER" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-1-gestire-un-banner%2F&amp;linkname=ANDROID%20TUTORIAL%20%E2%80%93%201%20%E2%80%93%20GESTIRE%20UN%20BANNER" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2014%2F06%2Fandroid-tutorial-1-gestire-un-banner%2F&#038;title=ANDROID%20TUTORIAL%20%E2%80%93%201%20%E2%80%93%20GESTIRE%20UN%20BANNER" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-1-gestire-un-banner/" data-a2a-title="ANDROID TUTORIAL – 1 – GESTIRE UN BANNER"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2014/06/android-tutorial-1-gestire-un-banner/">ANDROID TUTORIAL – 1 – GESTIRE UN BANNER</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
