tag:blogger.com,1999:blog-69864286569951034962024-03-14T02:12:45.281-07:00Mobile Programming Guidesayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-6986428656995103496.post-44352845688698119162015-05-23T11:53:00.001-07:002015-05-23T11:56:47.739-07:00Android Wi-Fi TutorialAndroid allows applications to access to view the access the state of
the wirless connections at very low level. Application can access
almost all the information of a wifi connection.<br />
The information that an application can access includes connected
network's link speed,IP address, negotiation state, other networks
information. Applications can also scan, add, save, terminate and
initiate Wi-Fi connections.<br />
Android provides <b>WifiManager</b> API to manage all aspects of WIFI connectivity. We can instantiate this class by calling <b>getSystemService</b> method. Its syntax is given below:<br />
<pre class="prettyprint prettyprinted"><span class="typ">WifiManager</span><span class="pln"> mainWifiObj</span><span class="pun">;</span><span class="pln">
mainWifiObj </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">WifiManager</span><span class="pun">)</span><span class="pln"> getSystemService</span><span class="pun">(</span><span class="typ">Context</span><span class="pun">.</span><span class="pln">WIFI_SERVICE</span><span class="pun">);</span><span class="pln"> </span></pre>
In order to scan a list of wireless networks, you also need to register your BroadcastReceiver. It can be registered using <b>registerReceiver</b> method with argument of your reciever class object. Its sytanx is given below:<br />
<pre class="prettyprint prettyprinted"><span class="kwd">class</span><span class="pln"> </span><span class="typ">WifiScanReceiver</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">BroadcastReceiver</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onReceive</span><span class="pun">(</span><span class="typ">Context</span><span class="pln"> c</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Intent</span><span class="pln"> intent</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="typ">WifiScanReceiver</span><span class="pln"> wifiReciever </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">WifiScanReceiver</span><span class="pun">();</span><span class="pln">
registerReceiver</span><span class="pun">(</span><span class="pln">wifiReciever</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">IntentFilter</span><span class="pun">(</span><span class="typ">WifiManager</span><span class="pun">.</span><span class="pln">SCAN_RESULTS_AVAILABLE_ACTION</span><span class="pun">));</span><span class="pln"> </span></pre>
The wifi scan can be start by calling the <b>startScan</b> method of the WifiManager class. This method returns a list of ScanResult objects. You can access any object by calling the <b>get</b> method of list. Its syntax is given below:<br />
<pre class="prettyprint prettyprinted"><span class="typ">List</span><span class="pun"><</span><span class="typ">ScanResult</span><span class="pun">></span><span class="pln"> wifiScanList </span><span class="pun">=</span><span class="pln"> mainWifiObj</span><span class="pun">.</span><span class="pln">getScanResults</span><span class="pun">();</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> data </span><span class="pun">=</span><span class="pln"> wifiScanList</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">toString</span><span class="pun">();</span></pre>
Apart from just Scanning , you can have more control over your WIFI
by using the methods defined in WifiManager class. They are listed as
follows:<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Method & Description</th></tr>
<tr><td>1</td><td><b>addNetwork(WifiConfiguration config)</b><br />
This method add a new network description to the set of configured networks.</td></tr>
<tr><td>2</td><td><b>createWifiLock(String tag)</b><br />
This method creates a new WifiLock.</td></tr>
<tr><td>3</td><td><b>disconnect()</b><br />
This method disassociate from the currently active access point.</td></tr>
<tr><td>4</td><td><b>enableNetwork(int netId, boolean disableOthers)</b><br />
This method allow a previously configured network to be associated with.</td></tr>
<tr><td>5</td><td><b>getWifiState()</b><br />
This method gets the Wi-Fi enabled state</td></tr>
<tr><td>6</td><td><b>isWifiEnabled()</b><br />
This method return whether Wi-Fi is enabled or disabled.</td></tr>
<tr><td>7</td><td><b>setWifiEnabled(boolean enabled)</b><br />
This method enable or disable Wi-Fi.</td></tr>
<tr><td>8</td><td><b>updateNetwork(WifiConfiguration config)</b><br />
This method update the network description of an existing configured network.</td></tr>
</tbody></table>
<h2>
Example</h2>
Here is an example demonstrating the use of WIFI. It creates a basic
application that scans a list of wirless networks and populate them in a
list view.<br />
To experiment with this example , you need to run this on an actual device on which wifi is turned on.<br />
<table class="src">
<tbody>
<tr><th>Steps</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android
application and name it as WIFI under a package com.example.wifi. While
creating this project, make sure you Target SDK and Compile With at the
latest version of Android SDK to use higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify src/MainActivity.java file to add WebView code.</td></tr>
<tr><td>3</td><td>Modify the res/layout/activity_main to add respective XML components</td></tr>
<tr><td>4</td><td>Modify the AndroidManifest.xml to add the necessary permissions</td></tr>
<tr><td>5</td><td>Run the application and choose a running android device and install the application on it and verify the results.</td></tr>
</tbody></table>
Following is the content of the modifed main activity file <b>src/com.example.wifi/MainActivity.java</b>. <br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">wifi</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">List</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">annotation</span><span class="pun">.</span><span class="typ">SuppressLint</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">BroadcastReceiver</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Context</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">IntentFilter</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">net</span><span class="pun">.</span><span class="pln">wifi</span><span class="pun">.</span><span class="typ">ScanResult</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">net</span><span class="pun">.</span><span class="pln">wifi</span><span class="pun">.</span><span class="typ">WifiManager</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ArrayAdapter</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ListView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">WifiManager</span><span class="pln"> mainWifiObj</span><span class="pun">;</span><span class="pln">
</span><span class="typ">WifiScanReceiver</span><span class="pln"> wifiReciever</span><span class="pun">;</span><span class="pln">
</span><span class="typ">ListView</span><span class="pln"> list</span><span class="pun">;</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> wifis</span><span class="pun">[];</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
list </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ListView</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">listView1</span><span class="pun">);</span><span class="pln">
mainWifiObj </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">WifiManager</span><span class="pun">)</span><span class="pln"> getSystemService</span><span class="pun">(</span><span class="typ">Context</span><span class="pun">.</span><span class="pln">WIFI_SERVICE</span><span class="pun">);</span><span class="pln">
wifiReciever </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">WifiScanReceiver</span><span class="pun">();</span><span class="pln">
mainWifiObj</span><span class="pun">.</span><span class="pln">startScan</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onPause</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
unregisterReceiver</span><span class="pun">(</span><span class="pln">wifiReciever</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onPause</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onResume</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
registerReceiver</span><span class="pun">(</span><span class="pln">wifiReciever</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">IntentFilter</span><span class="pun">(</span><span class="pln">
</span><span class="typ">WifiManager</span><span class="pun">.</span><span class="pln">SCAN_RESULTS_AVAILABLE_ACTION</span><span class="pun">));</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onResume</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">WifiScanReceiver</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">BroadcastReceiver</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@SuppressLint</span><span class="pun">(</span><span class="str">"UseValueOf"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onReceive</span><span class="pun">(</span><span class="typ">Context</span><span class="pln"> c</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Intent</span><span class="pln"> intent</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">List</span><span class="pun"><</span><span class="typ">ScanResult</span><span class="pun">></span><span class="pln"> wifiScanList </span><span class="pun">=</span><span class="pln"> mainWifiObj</span><span class="pun">.</span><span class="pln">getScanResults</span><span class="pun">();</span><span class="pln">
wifis </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">[</span><span class="pln">wifiScanList</span><span class="pun">.</span><span class="pln">size</span><span class="pun">()];</span><span class="pln">
</span><span class="kwd">for</span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun"><</span><span class="pln"> wifiScanList</span><span class="pun">.</span><span class="pln">size</span><span class="pun">();</span><span class="pln"> i</span><span class="pun">++){</span><span class="pln">
wifis</span><span class="pun">[</span><span class="pln">i</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">((</span><span class="pln">wifiScanList</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="pln">i</span><span class="pun">)).</span><span class="pln">toString</span><span class="pun">());</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
list</span><span class="pun">.</span><span class="pln">setAdapter</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayAdapter</span><span class="pun"><</span><span class="typ">String</span><span class="pun">>(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln">
android</span><span class="pun">.</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">simple_list_item_1</span><span class="pun">,</span><span class="pln">wifis</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following is the modified content of the xml <b>res/layout/activity_main.xml</b>.<br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><ListView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/listView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_centerHorizontal</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:drawSelectorOnTop</span><span class="pun">=</span><span class="atv">"false"</span><span class="pln">
</span><span class="atn">android:background</span><span class="pun">=</span><span class="atv">"@android:color/background_dark"</span><span class="pln">
</span><span class="atn">android:listSelector</span><span class="pun">=</span><span class="atv">"@android:color/darker_gray"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"></ListView></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Following is the content of <b>AndroidManifest.xml</b> file.<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.wifi"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"14"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.ACCESS_WIFI_STATE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.CHANGE_WIFI_STATE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.wifi.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.wifi.ListWifiActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/title_activity_list_wifi"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
<hr />
Let's try to run your WIFI application. I assume you have connected
your actual Android Mobile device with your computer. To run the app
from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Anroid Wi-Fi Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/camera5.jpg" />
Select your mobile device as an option and then check your mobile
device which will display your mobile screen filled with wireless
networks around you. It is shown below:<br />
<img alt="Anroid Wi-Fi Tutorial" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_wifi1.jpg" />
Note the information that has been returned to you. It contains much information about each of the wireless network detected.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-91595090816467755022015-05-23T11:52:00.001-07:002015-05-23T11:57:23.399-07:00Android XML Parser TutorialXML stands for Extensible Markup Language.XML is a very popular
format and commonly used for sharing data on the internet. This chapter
explains how to parse the XML file and extract necessary information
from it.<br />
Android provides three types of XML parsers which are <b>DOM,SAX and XMLPullParser</b>.
Among all of them android recommend XMLPullParser because it is
efficent and easy to use. So we are going to use XMLPullParser for
parsing XML<br />
The first step is to identify the fields in the XML data in which you
are interested in. For example. In the XML given below we interested in
getting temperature only.<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><current></span><span class="pln">
</span><span class="tag"><city</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"2643743"</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"London"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><coord</span><span class="pln"> </span><span class="atn">lon</span><span class="pun">=</span><span class="atv">"-0.12574"</span><span class="pln"> </span><span class="atn">lat</span><span class="pun">=</span><span class="atv">"51.50853"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><country></span><span class="pln">GB</span><span class="tag"></country></span><span class="pln">
</span><span class="tag"><sun</span><span class="pln"> </span><span class="atn">rise</span><span class="pun">=</span><span class="atv">"2013-10-08T06:13:56"</span><span class="pln"> </span><span class="atn">set</span><span class="pun">=</span><span class="atv">"2013-10-08T17:21:45"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></city></span><span class="pln">
</span><span class="tag"><temperature</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"289.54"</span><span class="pln"> </span><span class="atn">min</span><span class="pun">=</span><span class="atv">"289.15"</span><span class="pln"> </span><span class="atn">max</span><span class="pun">=</span><span class="atv">"290.15"</span><span class="pln"> </span><span class="atn">unit</span><span class="pun">=</span><span class="atv">"kelvin"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><humidity</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"77"</span><span class="pln"> </span><span class="atn">unit</span><span class="pun">=</span><span class="atv">"%"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><pressure</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"1025"</span><span class="pln"> </span><span class="atn">unit</span><span class="pun">=</span><span class="atv">"hPa"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></country></span></pre>
<h2>
XML - Elements</h2>
An xml file consist of many components. Here is the table defining the compoents of an XML file and their description.<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Component & description</th></tr>
<tr><td>1</td><td><b>Prolog</b><br />
An XML file starts with a prolog. The first line that contains the information about a file is prolog</td></tr>
<tr><td>2</td><td><b>Events</b><br />
An XML file has many events. Event could be like this. Document starts , Document ends, Tag start , Tag end and Text e.t.c</td></tr>
<tr><td>3</td><td><b>Text</b><br />
Apart from tags and events , and xml file also contains simple text. Such as <b>GB</b> is a text in the country tag.</td></tr>
<tr><td>4</td><td><b>Attributes</b><br />
Attributes are the additional properties of a tag such as value e.t.c</td></tr>
</tbody></table>
<h2>
XML - Parsing</h2>
In the next step , we will create XMLPullParser object , but in order
to create that we will first create XmlPullParserFactory object and
then call its newPullParser() method to create XMLPullParser. Its syntax
is given below:<br />
<pre class="prettyprint prettyprinted"><span class="kwd">private</span><span class="pln"> </span><span class="typ">XmlPullParserFactory</span><span class="pln"> xmlFactoryObject </span><span class="pun">=</span><span class="pln"> </span><span class="typ">XmlPullParserFactory</span><span class="pun">.</span><span class="pln">newInstance</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pln"> myparser </span><span class="pun">=</span><span class="pln"> xmlFactoryObject</span><span class="pun">.</span><span class="pln">newPullParser</span><span class="pun">();</span></pre>
The next step involves specifying the file for XmlPullParser that
contains XML. It could be a file or could be a Stream. In our case it is
a stream.Its syntax is given below:<br />
<pre class="prettyprint prettyprinted"><span class="pln">myparser</span><span class="pun">.</span><span class="pln">setInput</span><span class="pun">(</span><span class="pln">stream</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">);</span></pre>
The last step is to parse the XML. An XML file consist of events ,
Name , Text , AttributesValue e.t.c. So XMLPullParser has a seperate
function for parsing each of the component of XML file. Its syntax is
given below:<br />
<pre class="prettyprint prettyprinted"><span class="kwd">int</span><span class="pln"> </span><span class="kwd">event</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getEventType</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">event</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">END_DOCUMENT</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> name</span><span class="pun">=</span><span class="pln">myParser</span><span class="pun">.</span><span class="pln">getName</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">switch</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">event</span><span class="pun">){</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">START_TAG</span><span class="pun">:</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">END_TAG</span><span class="pun">:</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">name</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="str">"temperature"</span><span class="pun">)){</span><span class="pln">
temperature </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getAttributeValue</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">,</span><span class="str">"value"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">event</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="kwd">next</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span></pre>
The method <b>getEventType</b> returns the type of event that happens. e.g: Document start , tag start e.t.c. The method <b>getName</b>
returns the name of the tag and since we are only interested in
temperature , so we just check in conditional statement that if we got a
temperature tag , we call the method <b>getAttributeValue</b> to return us the value of temperature tag.<br />
Apart from the these methods , there are other methods provided by
this class for better parsing XML files. These methods are listed below:<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Method & description</th></tr>
<tr><td>1</td><td><b>getAttributeCount()</b><br />
This method just Returns the number of attributes of the current start tag</td></tr>
<tr><td>2</td><td><b>getAttributeName(int index)</b><br />
This method returns the name of the attribute specified by the index value</td></tr>
<tr><td>3</td><td><b>getColumnNumber()</b><br />
This method returns the Returns the current column number, starting from 0.</td></tr>
<tr><td>4</td><td><b>getDepth()</b><br />
This method returns Returns the current depth of the element.</td></tr>
<tr><td>5</td><td><b>getLineNumber()</b><br />
Returns the current line number, starting from 1.</td></tr>
<tr><td>6</td><td><b>getNamespace()</b><br />
This method rReturns the namespace URI of the current element.</td></tr>
<tr><td>7</td><td><b>getPrefix()</b><br />
This method returns the prefix of the current element</td></tr>
<tr><td>8</td><td><b>getName()</b><br />
This method returns the name of the tag</td></tr>
<tr><td>9</td><td><b>getText()</b><br />
This method returns the text for that particular element </td></tr>
<tr><td>10</td><td><b>isWhitespace()</b><br />
This method checks whether the current TEXT event contains only whitespace characters.</td></tr>
</tbody></table>
<h2>
Example</h2>
Here is an example demonstrating the use of XMLPullParser class. It
creates a basic Weather application that allows you to parse XML from
google weather api and show the result.<br />
To experiment with this example , you can run this on an actual device or in an emulator.<br />
<table class="src">
<tbody>
<tr><th>Steps</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android
application and name it as XMLParser under a package
com.example.xmlparser. While creating this project, make sure you Target
SDK and Compile With at the latest version of Android SDK to use higher
levels of APIs.</td></tr>
<tr><td>2</td><td>Modify src/MainActivity.java file to add necessary code.</td></tr>
<tr><td>3</td><td>Modify the res/layout/activity_main to add respective XML components</td></tr>
<tr><td>4</td><td>Modify the res/values/string.xml to add necessary string components</td></tr>
<tr><td>5</td><td>Create a new java file under src/HandleXML.java to fetch and parse XML data</td></tr>
<tr><td>6</td><td>Modify AndroidManifest.xml to add necessary internet permission</td></tr>
<tr><td>7</td><td>Run the application and choose a running android device and install the application on it and verify the results</td></tr>
</tbody></table>
Following is the content of the modifed main activity file <b>src/com.example.xmlparser/MainActivity.java</b>. <br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">xmlparser</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">io</span><span class="pun">.</span><span class="typ">IOException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="typ">HttpEntity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="typ">HttpResponse</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="typ">ParseException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">client</span><span class="pun">.</span><span class="typ">ClientProtocolException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">client</span><span class="pun">.</span><span class="pln">methods</span><span class="pun">.</span><span class="typ">HttpPost</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">impl</span><span class="pun">.</span><span class="pln">client</span><span class="pun">.</span><span class="typ">DefaultHttpClient</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">EntityUtils</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">EditText</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> url1 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://api.openweathermap.org/data/2.5/weather?q="</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> url2 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"&mode=xml"</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">EditText</span><span class="pln"> location</span><span class="pun">,</span><span class="pln">country</span><span class="pun">,</span><span class="pln">temperature</span><span class="pun">,</span><span class="pln">humidity</span><span class="pun">,</span><span class="pln">pressure</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">HandleXML</span><span class="pln"> obj</span><span class="pun">;</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
location </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editText1</span><span class="pun">);</span><span class="pln">
country </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editText2</span><span class="pun">);</span><span class="pln">
temperature </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editText3</span><span class="pun">);</span><span class="pln">
humidity </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editText4</span><span class="pun">);</span><span class="pln">
pressure </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editText5</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> open</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> location</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">().</span><span class="pln">toString</span><span class="pun">();</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> finalUrl </span><span class="pun">=</span><span class="pln"> url1 </span><span class="pun">+</span><span class="pln"> url </span><span class="pun">+</span><span class="pln"> url2</span><span class="pun">;</span><span class="pln">
country</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="pln">finalUrl</span><span class="pun">);</span><span class="pln">
obj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">HandleXML</span><span class="pun">(</span><span class="pln">finalUrl</span><span class="pun">);</span><span class="pln">
obj</span><span class="pun">.</span><span class="pln">fetchXML</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">while</span><span class="pun">(</span><span class="pln">obj</span><span class="pun">.</span><span class="pln">parsingComplete</span><span class="pun">);</span><span class="pln">
country</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="pln">obj</span><span class="pun">.</span><span class="pln">getCountry</span><span class="pun">());</span><span class="pln">
temperature</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="pln">obj</span><span class="pun">.</span><span class="pln">getTemperature</span><span class="pun">());</span><span class="pln">
humidity</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="pln">obj</span><span class="pun">.</span><span class="pln">getHumidity</span><span class="pun">());</span><span class="pln">
pressure</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="pln">obj</span><span class="pun">.</span><span class="pln">getPressure</span><span class="pun">());</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following is the content of <b>src/com.example.xmlparser/HandleXML.java</b>.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">xmlparser</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">io</span><span class="pun">.</span><span class="typ">IOException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">io</span><span class="pun">.</span><span class="typ">InputStream</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">net</span><span class="pun">.</span><span class="typ">HttpURLConnection</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">net</span><span class="pun">.</span><span class="pln">URL</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="typ">HttpEntity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="typ">HttpResponse</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">client</span><span class="pun">.</span><span class="typ">ClientProtocolException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">client</span><span class="pun">.</span><span class="pln">methods</span><span class="pun">.</span><span class="typ">HttpPost</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">impl</span><span class="pun">.</span><span class="pln">client</span><span class="pun">.</span><span class="typ">DefaultHttpClient</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">http</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">EntityUtils</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">xmlpull</span><span class="pun">.</span><span class="pln">v1</span><span class="pun">.</span><span class="typ">XmlPullParser</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">xmlpull</span><span class="pun">.</span><span class="pln">v1</span><span class="pun">.</span><span class="typ">XmlPullParserException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">xmlpull</span><span class="pun">.</span><span class="pln">v1</span><span class="pun">.</span><span class="typ">XmlPullParserFactory</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Log</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">EditText</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">HandleXML</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> country </span><span class="pun">=</span><span class="pln"> </span><span class="str">"county"</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> temperature </span><span class="pun">=</span><span class="pln"> </span><span class="str">"temperature"</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> humidity </span><span class="pun">=</span><span class="pln"> </span><span class="str">"humidity"</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> pressure </span><span class="pun">=</span><span class="pln"> </span><span class="str">"pressure"</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> urlString </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">XmlPullParserFactory</span><span class="pln"> xmlFactoryObject</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">volatile</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> parsingComplete </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">HandleXML</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> url</span><span class="pun">){</span><span class="pln">
</span><span class="kwd">this</span><span class="pun">.</span><span class="pln">urlString </span><span class="pun">=</span><span class="pln"> url</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> getCountry</span><span class="pun">(){</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> country</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> getTemperature</span><span class="pun">(){</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> temperature</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> getHumidity</span><span class="pun">(){</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> humidity</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> getPressure</span><span class="pun">(){</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> pressure</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> parseXMLAndStoreIt</span><span class="pun">(</span><span class="typ">XmlPullParser</span><span class="pln"> myParser</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">;</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> text</span><span class="pun">=</span><span class="kwd">null</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">event</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getEventType</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">event</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">END_DOCUMENT</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> name</span><span class="pun">=</span><span class="pln">myParser</span><span class="pun">.</span><span class="pln">getName</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">switch</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">event</span><span class="pun">){</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">START_TAG</span><span class="pun">:</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">TEXT</span><span class="pun">:</span><span class="pln">
text </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">END_TAG</span><span class="pun">:</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">name</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="str">"country"</span><span class="pun">)){</span><span class="pln">
country </span><span class="pun">=</span><span class="pln"> text</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">name</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="str">"humidity"</span><span class="pun">)){</span><span class="pln">
humidity </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getAttributeValue</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">,</span><span class="str">"value"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">name</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="str">"pressure"</span><span class="pun">)){</span><span class="pln">
pressure </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getAttributeValue</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">,</span><span class="str">"value"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">name</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="str">"temperature"</span><span class="pun">)){</span><span class="pln">
temperature </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="pln">getAttributeValue</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">,</span><span class="str">"value"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">event</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> myParser</span><span class="pun">.</span><span class="kwd">next</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
parsingComplete </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
e</span><span class="pun">.</span><span class="pln">printStackTrace</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> fetchXML</span><span class="pun">(){</span><span class="pln">
</span><span class="typ">Thread</span><span class="pln"> thread </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Thread</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Runnable</span><span class="pun">(){</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> run</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
URL url </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> URL</span><span class="pun">(</span><span class="pln">urlString</span><span class="pun">);</span><span class="pln">
</span><span class="typ">HttpURLConnection</span><span class="pln"> conn </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">HttpURLConnection</span><span class="pun">)</span><span class="pln">
url</span><span class="pun">.</span><span class="pln">openConnection</span><span class="pun">();</span><span class="pln">
conn</span><span class="pun">.</span><span class="pln">setReadTimeout</span><span class="pun">(</span><span class="lit">10000</span><span class="pln"> </span><span class="com">/* milliseconds */</span><span class="pun">);</span><span class="pln">
conn</span><span class="pun">.</span><span class="pln">setConnectTimeout</span><span class="pun">(</span><span class="lit">15000</span><span class="pln"> </span><span class="com">/* milliseconds */</span><span class="pun">);</span><span class="pln">
conn</span><span class="pun">.</span><span class="pln">setRequestMethod</span><span class="pun">(</span><span class="str">"GET"</span><span class="pun">);</span><span class="pln">
conn</span><span class="pun">.</span><span class="pln">setDoInput</span><span class="pun">(</span><span class="kwd">true</span><span class="pun">);</span><span class="pln">
conn</span><span class="pun">.</span><span class="pln">connect</span><span class="pun">();</span><span class="pln">
</span><span class="typ">InputStream</span><span class="pln"> stream </span><span class="pun">=</span><span class="pln"> conn</span><span class="pun">.</span><span class="pln">getInputStream</span><span class="pun">();</span><span class="pln">
xmlFactoryObject </span><span class="pun">=</span><span class="pln"> </span><span class="typ">XmlPullParserFactory</span><span class="pun">.</span><span class="pln">newInstance</span><span class="pun">();</span><span class="pln">
</span><span class="typ">XmlPullParser</span><span class="pln"> myparser </span><span class="pun">=</span><span class="pln"> xmlFactoryObject</span><span class="pun">.</span><span class="pln">newPullParser</span><span class="pun">();</span><span class="pln">
myparser</span><span class="pun">.</span><span class="pln">setFeature</span><span class="pun">(</span><span class="typ">XmlPullParser</span><span class="pun">.</span><span class="pln">FEATURE_PROCESS_NAMESPACES
</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">);</span><span class="pln">
myparser</span><span class="pun">.</span><span class="pln">setInput</span><span class="pun">(</span><span class="pln">stream</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">);</span><span class="pln">
parseXMLAndStoreIt</span><span class="pun">(</span><span class="pln">myparser</span><span class="pun">);</span><span class="pln">
stream</span><span class="pun">.</span><span class="pln">close</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
e</span><span class="pun">.</span><span class="pln">printStackTrace</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
thread</span><span class="pun">.</span><span class="pln">start</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span></pre>
Following is the modified content of the xml <b>res/layout/activity_main.xml</b>.<br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentLeft</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"15dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/location"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceMedium"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editText1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignBottom</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_alignParentRight</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:ems</span><span class="pun">=</span><span class="atv">"10"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView2"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignLeft</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_below</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"68dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/country"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceSmall"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_below</span><span class="pun">=</span><span class="atv">"@+id/textView2"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"19dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/temperature"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceSmall"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView4"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignLeft</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:layout_below</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"32dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/humidity"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceSmall"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView5"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignLeft</span><span class="pun">=</span><span class="atv">"@+id/textView4"</span><span class="pln">
</span><span class="atn">android:layout_below</span><span class="pun">=</span><span class="atv">"@+id/textView4"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"21dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/pressure"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceSmall"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editText2"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_above</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:layout_toRightOf</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:ems</span><span class="pun">=</span><span class="atv">"10"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><requestFocus</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></EditText></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editText3"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignBaseline</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:layout_alignBottom</span><span class="pun">=</span><span class="atv">"@+id/textView3"</span><span class="pln">
</span><span class="atn">android:layout_alignLeft</span><span class="pun">=</span><span class="atv">"@+id/editText2"</span><span class="pln">
</span><span class="atn">android:ems</span><span class="pun">=</span><span class="atv">"10"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editText4"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_above</span><span class="pun">=</span><span class="atv">"@+id/textView5"</span><span class="pln">
</span><span class="atn">android:layout_alignLeft</span><span class="pun">=</span><span class="atv">"@+id/editText1"</span><span class="pln">
</span><span class="atn">android:ems</span><span class="pun">=</span><span class="atv">"10"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editText5"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignBaseline</span><span class="pun">=</span><span class="atv">"@+id/textView5"</span><span class="pln">
</span><span class="atn">android:layout_alignBottom</span><span class="pun">=</span><span class="atv">"@+id/textView5"</span><span class="pln">
</span><span class="atn">android:layout_alignRight</span><span class="pun">=</span><span class="atv">"@+id/editText4"</span><span class="pln">
</span><span class="atn">android:ems</span><span class="pun">=</span><span class="atv">"10"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignLeft</span><span class="pun">=</span><span class="atv">"@+id/editText2"</span><span class="pln">
</span><span class="atn">android:layout_below</span><span class="pun">=</span><span class="atv">"@+id/editText1"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"open"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/weather"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Following is the content of the <b>res/values/string.xml</b>.<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">XMLParser</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"location"</span><span class="tag">></span><span class="pln">Location</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"country"</span><span class="tag">></span><span class="pln">Country:</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"temperature"</span><span class="tag">></span><span class="pln">Temperature:</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"humidity"</span><span class="tag">></span><span class="pln">Humidity:</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"pressure"</span><span class="tag">></span><span class="pln">Pressure:</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"weather"</span><span class="tag">></span><span class="pln">Weather</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Following is the content of <b>AndroidManifest.xml</b> file.<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.xmlparser"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.INTERNET"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.xmlparser.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run our XMLParser application we just modified. I assume you had created your <b>AVD</b> while doing environment setup. To run the app from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Eclipse installs the app on your AVD and starts
it and if everything is fine with your setup and application, it will
display following Emulator window:<br />
<img alt="Anroid XML Parser Tutorial" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/android_xml_parser1.jpg" />
Now what you need to do is to enter any location in the location
field. For example , i have entered London. Press the weather button ,
when you enter the location. The following screen would appear in you
AVD:<br />
<img alt="Anroid XML Parser Tutorial" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_xml_parser2.jpg" />
Now when you press the weather button, the application will contact
the Google Weather API and will request for your necessary XML location
file and will parse it. In case of London following file would be
returned:<br />
Note that this temperature is in kelvin, so if you want to convert it
into more understandble format , you have to convert it into Celcius.<br />
<hr />
ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-59237570847632624682015-05-23T11:49:00.002-07:002015-05-23T11:57:48.888-07:00Android Camera TutorialThese are the following two ways , in which you can use camera in your application<br />
<ol class="list">
<li>Using existing android camera application in our application</li>
<li>Directly using Camera API provided by android in our application</li>
</ol>
<h2>
Using existing android camera application in our application</h2>
You will use MediaStore.ACTION_IMAGE_CAPTURE to launch an existing
camera application installed on your phone. Its syntax is given below<br />
<pre class="prettyprint prettyprinted"><span class="typ">Intent</span><span class="pln"> intent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="pln">android</span><span class="pun">.</span><span class="pln">provider</span><span class="pun">.</span><span class="typ">MediaStore</span><span class="pun">.</span><span class="pln">ACTION_IMAGE_CAPTURE</span><span class="pun">);</span></pre>
Apart from the above , there are other availaible Intents provided by MediaStore. They are listed as follows<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Intent type and description</th></tr>
<tr><td>1</td><td><b>ACTION_IMAGE_CAPTURE_SECURE</b><br />
It returns the image captured from the camera , when the device is secured</td></tr>
<tr><td>2</td><td><b>ACTION_VIDEO_CAPTURE</b><br />
It calls the existing video application in android to capture video</td></tr>
<tr><td>3</td><td><b>EXTRA_SCREEN_ORIENTATION</b><br />
It is used to set the orientation of the screen to vertical or landscape</td></tr>
<tr><td>4</td><td><b>EXTRA_FULL_SCREEN</b><br />
It is used to control the user interface of the ViewImage</td></tr>
<tr><td>5</td><td><b>INTENT_ACTION_VIDEO_CAMERA</b><br />
This intent is used to launch the camea in the video mode</td></tr>
<tr><td>6</td><td><b>EXTRA_SIZE_LIMIT</b><br />
It is used to specify the size limit of video or image capture size</td></tr>
</tbody></table>
Now you will use the function <i>startActivityForResult()</i> to launch this activity and wait for its result. Its syntax is given below<br />
<pre class="prettyprint prettyprinted"><span class="pln">startActivityForResult</span><span class="pun">(</span><span class="pln">intent</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span></pre>
This method has been defined in the <b>activity</b> class. We are
calling it from main activity. There are methods defined in the activity
class that does the same job , but used when you are not calling from
the activity but from somewhere else. They are listed below<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Activity function description</th></tr>
<tr><td>1</td><td><b>startActivityForResult(Intent intent, int requestCode, Bundle options)</b><br />
It starts an activity , but can take extra bundle of options with it</td></tr>
<tr><td>2</td><td><b>startActivityFromChild(Activity child, Intent intent, int requestCode)</b><br />
It launch the activity when your activity is child of any other activity</td></tr>
<tr><td>3</td><td><b>startActivityFromChild(Activity child, Intent intent, int requestCode, Bundle options)</b><br />
It work same as above , but it can take extra values in the shape of bundle with it</td></tr>
<tr><td>4</td><td><b>startActivityFromFragment(Fragment fragment, Intent intent, int requestCode)</b><br />
It launches activity from the fragment you are currently inside</td></tr>
<tr><td>5</td><td><b>startActivityFromFragment(Fragment fragment, Intent intent, int requestCode, Bundle options)</b><br />
It not only launches the activity from the fragment , but can take extra values with it</td></tr>
</tbody></table>
No matter which function you used to launch the activity , they all
return the result. The result can be obtained by overriding the function
<i>onActivityResult</i>.
<br />
<h2>
Example</h2>
Here is an example that shows how to launch the exisitng camera
application to capture an image and display the result in the form of
bitmap<br />
To experiment with this example , you need to run this on an actual device on which camera is supported. <br />
<table class="src">
<tbody>
<tr><th>Steps</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android
application and name it as Camera under a package com.example.camera.
While creating this project, make sure you Target SDK and Compile With
at the latest version of Android SDK to use higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify src/MainActivity.java file to add intent code to launch the activity and result method to recieve the output.</td></tr>
<tr><td>3</td><td>Modify layout XML file res/layout/activity_main.xml
add any GUI component if required. Here we add only imageView and a
textView.</td></tr>
<tr><td>4</td><td>Modify res/values/strings.xml to define required constant values</td></tr>
<tr><td>5</td><td>Run the application and choose a running android device and install the application on it and verify the results.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.camera/MainActivity.java.</b><br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">camera</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">graphics</span><span class="pun">.</span><span class="typ">Bitmap</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ImageView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">ImageView</span><span class="pln"> imgFavorite</span><span class="pun">;</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
imgFavorite </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ImageView</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">imageView1</span><span class="pun">);</span><span class="pln">
imgFavorite</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
open</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> open</span><span class="pun">(){</span><span class="pln">
</span><span class="typ">Intent</span><span class="pln"> intent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="pln">android</span><span class="pun">.</span><span class="pln">provider</span><span class="pun">.</span><span class="typ">MediaStore</span><span class="pun">.</span><span class="pln">ACTION_IMAGE_CAPTURE</span><span class="pun">);</span><span class="pln">
startActivityForResult</span><span class="pun">(</span><span class="pln">intent</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onActivityResult</span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> requestCode</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> resultCode</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Intent</span><span class="pln"> data</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// TODO Auto-generated method stub</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onActivityResult</span><span class="pun">(</span><span class="pln">requestCode</span><span class="pun">,</span><span class="pln"> resultCode</span><span class="pun">,</span><span class="pln"> data</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Bitmap</span><span class="pln"> bp </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Bitmap</span><span class="pun">)</span><span class="pln"> data</span><span class="pun">.</span><span class="pln">getExtras</span><span class="pun">().</span><span class="kwd">get</span><span class="pun">(</span><span class="str">"data"</span><span class="pun">);</span><span class="pln">
imgFavorite</span><span class="pun">.</span><span class="pln">setImageBitmap</span><span class="pun">(</span><span class="pln">bp</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span></pre>
Following will be the content of <b>res/layout/activity_main.xml file:</b><br />
<pre class="prettyprint prettyprinted"><span class="pln">
</span><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><ImageView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/imageView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_marginLeft</span><span class="pun">=</span><span class="atv">"34dp"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"36dp"</span><span class="pln">
</span><span class="atn">android:contentDescription</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln">
</span><span class="atn">android:src</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignRight</span><span class="pun">=</span><span class="atv">"@+id/imageView1"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/tap"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceLarge"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span><span class="pln">
</span></pre>
Following will be the content of <b>res/values/strings.xml</b> to define one new constants<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">Camera</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"tap"</span><span class="tag">></span><span class="pln">Tap the image to open the camera!!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Following is the default content of <b>AndroidManifest.xml:</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.camera"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.camera.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your Camera application. I assume you have connected
your actual Android Mobile device with your computer. To run the app
from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/camera5.jpg" />
Select your mobile device as an option and then check your mobile device which will display following screen:<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/camera0.jpg" />
Now just tap on the image of android icon and the camera will be
opened. Just capture a picture. After capturing it , two buttons will
appear asking you to discard it or keep it<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/camera1.jpg" />
Just press the tic (green) button and you will be brought back to
your application with the captured image inplace of android icon<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/camera2.jpg" />
<br />
<h2>
Directly using Camera API provided by android in our application</h2>
We will be using the camera API to integrate the camera in our application<br />
First you will need to intialize the camera object using the static method provide by the api called <i>Camera.open</i>. Its syntax is<br />
<pre class="prettyprint prettyprinted"><span class="typ">Camera</span><span class="pln"> </span><span class="kwd">object</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">object</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Camera</span><span class="pun">.</span><span class="pln">open</span><span class="pun">();</span><span class="pln"> </span></pre>
Apart from the above function , there are other functions provided by the Camera class that which are listed below<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Method & Description</th></tr>
<tr><td>1</td><td><b>getCameraInfo(int cameraId, Camera.CameraInfo cameraInfo)</b><br />
It returns the information about a particular camera</td></tr>
<tr><td>2</td><td><b>getNumberOfCameras()</b><br />
It returns an integer number defining of cameras availaible on device</td></tr>
<tr><td>3</td><td><b>lock()</b><br />
It is used to lock the camera , so no other application can access it</td></tr>
<tr><td>4</td><td><b>release()</b><br />
It is used to release the lock on camera , so other applications can access it</td></tr>
<tr><td>5</td><td><b>open(int cameraId)</b><br />
It is used to open particular camera when multiple cameras are supported</td></tr>
<tr><td>6</td><td><b>enableShutterSound(boolean enabled)</b><br />
It is used to enable/disable default shutter sound of image capture</td></tr>
</tbody></table>
Now you need make an seperate class and extend it with SurfaceView and implements SurfaceHolder interface. <br />
The two classes that have been used have the following purpose<br />
<table class="src">
<tbody>
<tr><th>Class</th><th>Description</th></tr>
<tr><td><b>Camera</b></td><td>It is used to control the camera and take images or capture video from the camera</td></tr>
<tr><td><b>SurfaceView</b></td><td>This class is used to present a live camera preview to the user.</td></tr>
</tbody></table>
You have to call the preview method of the camera class to start the preview of the camera to the user<br />
<pre class="prettyprint prettyprinted"><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">ShowCamera</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">SurfaceView</span><span class="pln"> </span><span class="kwd">implements</span><span class="pln"> </span><span class="typ">SurfaceHolder</span><span class="pun">.</span><span class="typ">Callback</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">Camera</span><span class="pln"> theCamera</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> surfaceCreated</span><span class="pun">(</span><span class="typ">SurfaceHolder</span><span class="pln"> holder</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
theCamera</span><span class="pun">.</span><span class="pln">setPreviewDisplay</span><span class="pun">(</span><span class="pln">holder</span><span class="pun">);</span><span class="pln">
theCamera</span><span class="pun">.</span><span class="pln">startPreview</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> surfaceChanged</span><span class="pun">(</span><span class="typ">SurfaceHolder</span><span class="pln"> arg0</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg1</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg2</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg3</span><span class="pun">){</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> surfaceDestroyed</span><span class="pun">(</span><span class="typ">SurfaceHolder</span><span class="pln"> arg0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span></pre>
Apart from the preview there are other options of the camera that can
be set using the other functions provided by the Camera API<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Method & Description</th></tr>
<tr><td>1</td><td><b>startFaceDetection()</b><br />
This function starts the face detection in the camera</td></tr>
<tr><td>2</td><td><b>stopFaceDetection()</b><br />
It is used to stop the face detection which is enabled by the above function</td></tr>
<tr><td>3</td><td><b>startSmoothZoom(int value)</b><br />
It takes an integer value and zoom the camera very smoothly to that value</td></tr>
<tr><td>4</td><td><b>stopSmoothZoom()</b><br />
It is used to stop the zoom of the camera</td></tr>
<tr><td>5</td><td><b>stopPreview()</b><br />
It is used to stop the preiview of the camera to the user</td></tr>
<tr><td>6</td><td><b>takePicture(Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback jpeg)</b><br />
It is used to enable/disable default shutter sound of image capture</td></tr>
</tbody></table>
<h2>
Example</h2>
Following example demonstrates the usage of the camera API in the application<br />
To experiment with this example, you will need actual Mobile device
equipped with latest Android OS, beacuse camera is not supported by the
emulator<br />
<table class="src">
<tbody>
<tr><th>Steps</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android
application and name it as Camera under a package com.example.camera1.
While creating this project, make sure you Target SDK and Compile With
at the latest version of Android SDK to use higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify src/MainActivity.java file to add the respective code of camera and get references to the XML components.</td></tr>
<tr><td>3</td><td>Create a new ShowCamera.java file to extend it with SurfaceView and implement the SurfaceHolder interface .</td></tr>
<tr><td>4</td><td>Modify layout XML file res/layout/activity_main.xml
add any GUI component if required. Here we add only FrameView and a
button and a ImageView.</td></tr>
<tr><td>5</td><td>Modify res/values/strings.xml to define required constant values</td></tr>
<tr><td>6</td><td>Modify AndroidManifest.xml as shown below to add the necessary permissions for camera</td></tr>
<tr><td>7</td><td>Run the application and choose a running android device and install the application on it and verify the results.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.camera1/MainActivity.java.</b><br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">camera1</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">graphics</span><span class="pun">.</span><span class="typ">Bitmap</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">graphics</span><span class="pun">.</span><span class="typ">BitmapFactory</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">hardware</span><span class="pun">.</span><span class="typ">Camera</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">hardware</span><span class="pun">.</span><span class="typ">Camera</span><span class="pun">.</span><span class="typ">PictureCallback</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">FrameLayout</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ImageView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">Camera</span><span class="pln"> cameraObject</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">ShowCamera</span><span class="pln"> showCamera</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">ImageView</span><span class="pln"> pic</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="typ">Camera</span><span class="pln"> isCameraAvailiable</span><span class="pun">(){</span><span class="pln">
</span><span class="typ">Camera</span><span class="pln"> </span><span class="kwd">object</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">object</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Camera</span><span class="pun">.</span><span class="pln">open</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">){</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">object</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">PictureCallback</span><span class="pln"> capturedIt </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">PictureCallback</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onPictureTaken</span><span class="pun">(</span><span class="kwd">byte</span><span class="pun">[]</span><span class="pln"> data</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Camera</span><span class="pln"> camera</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Bitmap</span><span class="pln"> bitmap </span><span class="pun">=</span><span class="pln"> </span><span class="typ">BitmapFactory</span><span class="pun">.</span><span class="pln">decodeByteArray</span><span class="pun">(</span><span class="pln">data </span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> data </span><span class="pun">.</span><span class="pln">length</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">bitmap</span><span class="pun">==</span><span class="kwd">null</span><span class="pun">){</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln"> </span><span class="str">"not taken"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln"> </span><span class="str">"taken"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
cameraObject</span><span class="pun">.</span><span class="pln">release</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">};</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
pic </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ImageView</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">imageView1</span><span class="pun">);</span><span class="pln">
cameraObject </span><span class="pun">=</span><span class="pln"> isCameraAvailiable</span><span class="pun">();</span><span class="pln">
showCamera </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ShowCamera</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">,</span><span class="pln"> cameraObject</span><span class="pun">);</span><span class="pln">
</span><span class="typ">FrameLayout</span><span class="pln"> preview </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">FrameLayout</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">camera_preview</span><span class="pun">);</span><span class="pln">
preview</span><span class="pun">.</span><span class="pln">addView</span><span class="pun">(</span><span class="pln">showCamera</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> snapIt</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
cameraObject</span><span class="pun">.</span><span class="pln">takePicture</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> capturedIt</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span></pre>
Create the new java file called as<b>src/com.example.camera1/ShowCamera.java.</b> and add the following code<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">camera1</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">io</span><span class="pun">.</span><span class="typ">IOException</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Context</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">hardware</span><span class="pun">.</span><span class="typ">Camera</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">SurfaceHolder</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">SurfaceView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">ShowCamera</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">SurfaceView</span><span class="pln"> </span><span class="kwd">implements</span><span class="pln"> </span><span class="typ">SurfaceHolder</span><span class="pun">.</span><span class="typ">Callback</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">SurfaceHolder</span><span class="pln"> holdMe</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">Camera</span><span class="pln"> theCamera</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">ShowCamera</span><span class="pun">(</span><span class="typ">Context</span><span class="pln"> context</span><span class="pun">,</span><span class="typ">Camera</span><span class="pln"> camera</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">(</span><span class="pln">context</span><span class="pun">);</span><span class="pln">
theCamera </span><span class="pun">=</span><span class="pln"> camera</span><span class="pun">;</span><span class="pln">
holdMe </span><span class="pun">=</span><span class="pln"> getHolder</span><span class="pun">();</span><span class="pln">
holdMe</span><span class="pun">.</span><span class="pln">addCallback</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> surfaceChanged</span><span class="pun">(</span><span class="typ">SurfaceHolder</span><span class="pln"> arg0</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg1</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg2</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg3</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> surfaceCreated</span><span class="pun">(</span><span class="typ">SurfaceHolder</span><span class="pln"> holder</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
theCamera</span><span class="pun">.</span><span class="pln">setPreviewDisplay</span><span class="pun">(</span><span class="pln">holder</span><span class="pun">);</span><span class="pln">
theCamera</span><span class="pun">.</span><span class="pln">startPreview</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">IOException</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> surfaceDestroyed</span><span class="pun">(</span><span class="typ">SurfaceHolder</span><span class="pln"> arg0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Modify the content of the <b>res/layout/activity_main.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"horizontal"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_weight</span><span class="pun">=</span><span class="atv">"0.30"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><FrameLayout</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/camera_preview"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"199dp"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button_capture"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"snapIt"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/Capture"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><ImageView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/imageView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:scaleType</span><span class="pun">=</span><span class="atv">"fitXY"</span><span class="pln">
</span><span class="atn">android:src</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span><span class="pln">
< /LinearLayout></span></pre>
Modify the content of the <b>res/values/string.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">Camera1</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"Capture"</span><span class="tag">></span><span class="pln">Capture</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span><span class="pln">
</span></pre>
Modify the content of the <b>AndroidManifest.xml</b> and add the necessary permissions as shown below.<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.camera1"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.CAMERA"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-feature</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.hardware.camera"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-feature</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.hardware.camera.autofocus"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.camera1.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your SendSMSDemo application. I assume you have
connected your actual Android Mobile device with your computer. To run
the app from Eclipse, open one of your project's activity files and
click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/camera5.jpg" />
Select your mobile device as an option and then check your mobile device which will display following screen:<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.4/bmi/www.tutorialspoint.com/android/images/camera3.jpg" />
The camera would start showing its preview in the upper half panel.
Just click the capture button. You can now either store the captured
image , upload it to the web or either discard it.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-79583961251516176792015-05-23T11:48:00.003-07:002015-05-23T11:58:09.265-07:00Android Bluetooth TutorialAmong many ways, Bluetooth is a way to send or recieve data between
two different devices. Android platform includes support for the
Bluetooth framework that allows a device to wirelessly exchange data
with other Bluetooth devices.<br />
Android provides Bluetooth API to perform these different operations.<br />
<ol class="list">
<li>Scan for other Bluetooth devices</li>
<li>Get a list of paired devices</li>
<li>Connect to other devices through service discovery</li>
</ol>
Android provides BluetoothAdapter class to communicate with
Bluetooth. Create an object of this calling by calling the static method
getDefaultAdapter(). Its syntax is given below.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">private</span><span class="pln"> </span><span class="typ">BluetoothAdapter</span><span class="pln"> BA</span><span class="pun">;</span><span class="pln">
BA </span><span class="pun">=</span><span class="pln"> </span><span class="typ">BluetoothAdapter</span><span class="pun">.</span><span class="pln">getDefaultAdapter</span><span class="pun">();</span></pre>
In order to enable the Bluetooth of your device, call the intent with
the following Bluetooth constant ACTION_REQUEST_ENABLE. Its syntax is.<br />
<pre class="prettyprint prettyprinted"><span class="typ">Intent</span><span class="pln"> turnOn </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="typ">BluetoothAdapter</span><span class="pun">.</span><span class="pln">ACTION_REQUEST_ENABLE</span><span class="pun">);</span><span class="pln">
startActivityForResult</span><span class="pun">(</span><span class="pln">turnOn</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln"> </span></pre>
Apart from this constant , ther are other constanst provided the API , that supports differnet tasks. They are listed below.<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Constant & description</th></tr>
<tr><td>1</td><td><b>ACTION_REQUEST_DISCOVERABLE</b><br />
This constant is used for turn on discovering of bluetooth</td></tr>
<tr><td>2</td><td><b>ACTION_STATE_CHANGED</b><br />
This constant will notify that Bluetooth state has been changed</td></tr>
<tr><td>3</td><td><b>ACTION_FOUND</b><br />
This constant is used for recieving information about each device that is discovered</td></tr>
</tbody></table>
Once you enable the Bluetooth , you can get a list of paired devices
by calling getBondedDevices() method. It returns a set of bluetooth
devices. Its syntax is.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">private</span><span class="pln"> </span><span class="typ">Set</span><span class="pun"><</span><span class="typ">BluetoothDevice</span><span class="pun">></span><span class="pln">pairedDevices</span><span class="pun">;</span><span class="pln">
pairedDevices </span><span class="pun">=</span><span class="pln"> BA</span><span class="pun">.</span><span class="pln">getBondedDevices</span><span class="pun">();</span></pre>
Apart form the pariredDevices , there are other methods in the API
that gives more control over Blueetooth. THey are listed below.<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Method & description</th></tr>
<tr><td>1</td><td><b>enable()</b><br />
This method enables the adapter if not enabled</td></tr>
<tr><td>2</td><td><b>isEnabled()</b><br />
This method returns true if adapter is enabled</td></tr>
<tr><td>3</td><td><b>disable()</b><br />
This method disables the adapter</td></tr>
<tr><td>4</td><td><b>getName()</b><br />
This method returns the name of the Bluetooth adapter</td></tr>
<tr><td>5</td><td><b>setName(String name)</b><br />
This method changes the Bluetooth name</td></tr>
<tr><td>6</td><td><b>getState()</b><br />
This method returns the current state of the Bluetooth Adapter.</td></tr>
<tr><td>7</td><td><b>startDiscovery()</b><br />
This method starts the discovery process of the Bluetooth for 120 seconds.</td></tr>
</tbody></table>
<h2>
Example</h2>
This example provides demonstration of BluetoothAdapter class to
manipulate Bluetooth and show list of paired devices by the Bluetooth.<br />
To experiment with this example , you need to run this on an actual device.<br />
<table class="src">
<tbody>
<tr><th>Steps</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android
application and name it as AudioCapture under a package
com.example.audiocapture. While creating this project, make sure you
Target SDK and Compile With at the latest version of Android SDK to use
higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify src/MainActivity.java file to add the code </td></tr>
<tr><td>3</td><td>Modify layout XML file res/layout/activity_main.xml add any GUI component if required.</td></tr>
<tr><td>4</td><td>Modify res/values/string.xml file and add necessary string components.</td></tr>
<tr><td>5</td><td>Modify AndroidManifest.xml to add necessary permissions.</td></tr>
<tr><td>6</td><td>Run the application and choose a running android device and install the application on it and verify the results.</td></tr>
</tbody></table>
Here is the content of <b>src/com.example.bluetooth/MainActivity.java</b><br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">bluetooth</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">ArrayList</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">List</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Set</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">bluetooth</span><span class="pun">.</span><span class="typ">BluetoothAdapter</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">bluetooth</span><span class="pun">.</span><span class="typ">BluetoothDevice</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ArrayAdapter</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ListAdapter</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">ListView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">Button</span><span class="pln"> </span><span class="typ">On</span><span class="pun">,</span><span class="typ">Off</span><span class="pun">,</span><span class="typ">Visible</span><span class="pun">,</span><span class="pln">list</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">BluetoothAdapter</span><span class="pln"> BA</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">Set</span><span class="pun"><</span><span class="typ">BluetoothDevice</span><span class="pun">></span><span class="pln">pairedDevices</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">ListView</span><span class="pln"> lv</span><span class="pun">;</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button1</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Off</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button2</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button3</span><span class="pun">);</span><span class="pln">
list </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button4</span><span class="pun">);</span><span class="pln">
lv </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ListView</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">listView1</span><span class="pun">);</span><span class="pln">
BA </span><span class="pun">=</span><span class="pln"> </span><span class="typ">BluetoothAdapter</span><span class="pun">.</span><span class="pln">getDefaultAdapter</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> on</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">BA</span><span class="pun">.</span><span class="pln">isEnabled</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Intent</span><span class="pln"> turnOn </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="typ">BluetoothAdapter</span><span class="pun">.</span><span class="pln">ACTION_REQUEST_ENABLE</span><span class="pun">);</span><span class="pln">
startActivityForResult</span><span class="pun">(</span><span class="pln">turnOn</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="str">"Turned on"</span><span class="pln">
</span><span class="pun">,</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pun">{</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="str">"Already on"</span><span class="pun">,</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> list</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
pairedDevices </span><span class="pun">=</span><span class="pln"> BA</span><span class="pun">.</span><span class="pln">getBondedDevices</span><span class="pun">();</span><span class="pln">
</span><span class="typ">ArrayList</span><span class="pln"> list </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayList</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">for</span><span class="pun">(</span><span class="typ">BluetoothDevice</span><span class="pln"> bt </span><span class="pun">:</span><span class="pln"> pairedDevices</span><span class="pun">)</span><span class="pln">
list</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">bt</span><span class="pun">.</span><span class="pln">getName</span><span class="pun">());</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="str">"Showing Paired Devices"</span><span class="pun">,</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">final</span><span class="pln"> </span><span class="typ">ArrayAdapter</span><span class="pln"> adapter </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayAdapter</span><span class="pln">
</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">,</span><span class="pln">android</span><span class="pun">.</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">simple_list_item_1</span><span class="pun">,</span><span class="pln"> list</span><span class="pun">);</span><span class="pln">
lv</span><span class="pun">.</span><span class="pln">setAdapter</span><span class="pun">(</span><span class="pln">adapter</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> off</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
BA</span><span class="pun">.</span><span class="pln">disable</span><span class="pun">();</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="str">"Turned off"</span><span class="pln"> </span><span class="pun">,</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> visible</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
</span><span class="typ">Intent</span><span class="pln"> getVisible </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="typ">BluetoothAdapter</span><span class="pun">.</span><span class="pln">
ACTION_REQUEST_DISCOVERABLE</span><span class="pun">);</span><span class="pln">
startActivityForResult</span><span class="pun">(</span><span class="pln">getVisible</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Here is the content of <b>activity_main.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><ScrollView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/scrollView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentBottom</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignParentLeft</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignParentRight</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceLarge"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"on"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/on"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button2"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"visible"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/Visible"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button3"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"list"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/List"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button4"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"off"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/off"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><ListView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/listView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:visibility</span><span class="pun">=</span><span class="atv">"visible"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"></ListView></span><span class="pln">
</span><span class="tag"></LinearLayout></span><span class="pln">
</span><span class="tag"></ScrollView></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Here is the content of <b>Strings.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">Bluetooth</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"on"</span><span class="tag">></span><span class="pln">Turn On</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"off"</span><span class="tag">></span><span class="pln">Turn Off</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"Visible"</span><span class="tag">></span><span class="pln">Get Visible</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"List"</span><span class="tag">></span><span class="pln">List Devices</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Here is the content of <b>AndroidManifest.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.bluetooth"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.BLUETOOTH"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.BLUETOOTH_ADMIN"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.bluetooth.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your AndroidCapture application. I assume you have
connected your actual Android Mobile device with your computer. To run
the app from Eclipse, open one of your project's activity files and
click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Anroid Bluetooth Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/camera5.jpg" />
Select your mobile device as an option and then check your mobile device which will display following screen:<br />
<img alt="Anroid Bluetooth Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/android_bluetooth1.jpg" />
Now select Turn On to turn on the bluetooth. But as you select it ,
your Bluetooth will not be turned on. Infact , it will ask your
permission to enable the Bluetooth.<br />
<img alt="Anroid Bluetooth Tutorial" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/android_bluetooth2.jpg" />
Now just select the Get Visible button to turn on your visibiltiy.
The following screen would appear asking your permission to turn on
discovery for 120 seconds.<br />
<img alt="Anroid Bluetooth Tutorial" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_bluetooth3.jpg" />
Now just select the List Devices option. It will list down the paired
devices in the list view. In my case , i have only one paired device.
It is shown below.<br />
<img alt="Anroid Bluetooth Tutorial" src="http://1.1.1.4/bmi/www.tutorialspoint.com/android/images/android_bluetooth4.jpg" />
Now just select the Turn off button to switch off the Bluetooth.
Following message would appear when you swithc off the bluetooth
indicating the successfull swithching off of Bluetooth.<br />
<img alt="Anroid Bluetooth Tutorial" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/android_bluetooth5.jpg" />ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-25893822236985953882015-05-23T11:47:00.003-07:002015-05-23T11:58:25.614-07:00Android Sending SMSThere are following two ways to send SMS using Android device:<br />
<ul class="list">
<li>Using SmsManager to send SMS</li>
<li>Using Built-in Intent to send SMS</li>
</ul>
<h2>
Using SmsManager to send SMS</h2>
The SmsManager manages SMS operations such as sending data to the
given mobile device. You can create this object by calling the static
method SmsManager.getDefault() as follows:<br />
<pre class="prettyprint prettyprinted"><span class="typ">SmsManager</span><span class="pln"> smsManager </span><span class="pun">=</span><span class="pln"> </span><span class="typ">SmsManager</span><span class="pun">.</span><span class="pln">getDefault</span><span class="pun">();</span></pre>
Once you have SmsManager object, you can use <i>sendDataMessage()</i> method to send SMS at the specified mobile number as below:<br />
<pre class="prettyprint prettyprinted"><span class="pln">smsManager</span><span class="pun">.</span><span class="pln">sendTextMessage</span><span class="pun">(</span><span class="str">"phoneNo"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="str">"SMS text"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">);</span></pre>
Apart from the above method, there are few other important functions
available in SmsManager class. These methods are listed below:<br />
<table class="src">
<tbody>
<tr><th style="width: 5%;">S.N.</th><th>Method & Description</th></tr>
<tr><td>1</td><td><b>ArrayList<String> divideMessage(String text)</b> <br />
This method divides a message text into several fragments, none bigger than the maximum SMS message size.</td></tr>
<tr><td>2</td><td><b>static SmsManager getDefault()</b> <br />
This method is used to get the default instance of the SmsManager</td></tr>
<tr><td>3</td><td><b>void sendDataMessage(String destinationAddress,
String scAddress, short destinationPort, byte[] data, PendingIntent
sentIntent, PendingIntent deliveryIntent)</b> <br />
This method is used to send a data based SMS to a specific application port.</td></tr>
<tr><td>4</td><td><b>void sendMultipartTextMessage(String
destinationAddress, String scAddress, ArrayList<String> parts,
ArrayList<PendingIntent> sentIntents,
ArrayList<PendingIntent> deliveryIntents)</b> <br />
Send a multi-part text based SMS.</td></tr>
<tr><td>5</td><td><b>void sendTextMessage(String destinationAddress,
String scAddress, String text, PendingIntent sentIntent, PendingIntent
deliveryIntent)</b> <br />
Send a text based SMS.</td></tr>
</tbody></table>
<h2>
Example</h2>
Following example shows you in practical how to use SmsManager object to send an SMS to the given mobile number.<br />
<blockquote>
To experiment with this example, you will need actual Mobile
device equipped with latest Android OS, otherwise you will have to
struggle with emulator which may not work.</blockquote>
<table class="src">
<tbody>
<tr><th class="fivepct">Step</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android application and name it as <i>SendSMSDemo</i> under a package <i>com.example.sendsmsdemo</i>. While creating this project, make sure you <i>Target SDK</i> and <i>Compile With</i> at the latest version of Android SDK to use higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify <i>src/MainActivity.java</i> file and add required code to take care of sending email.</td></tr>
<tr><td>3</td><td>Modify layout XML file <i>res/layout/activity_main.xml</i>
add any GUI component if required. I'm adding a simple GUI to take
mobile number and SMS text to be sent and a simple button to send SMS.</td></tr>
<tr><td>4</td><td>Modify <i>res/values/strings.xml</i> to define required constant values</td></tr>
<tr><td>5</td><td>Modify <i>AndroidManifest.xml</i> as shown below</td></tr>
<tr><td>6</td><td>Run the application to launch Android emulator and verify the result of the changes done in the aplication.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.sendsmsdemo/MainActivity.java</b>.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">sendsmsdemo</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">telephony</span><span class="pun">.</span><span class="typ">SmsManager</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Log</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">EditText</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Button</span><span class="pln"> sendBtn</span><span class="pun">;</span><span class="pln">
</span><span class="typ">EditText</span><span class="pln"> txtphoneNo</span><span class="pun">;</span><span class="pln">
</span><span class="typ">EditText</span><span class="pln"> txtMessage</span><span class="pun">;</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
sendBtn </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">btnSendSMS</span><span class="pun">);</span><span class="pln">
txtphoneNo </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editTextPhoneNo</span><span class="pun">);</span><span class="pln">
txtMessage </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">EditText</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">editTextSMS</span><span class="pun">);</span><span class="pln">
sendBtn</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
sendSMSMessage</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> sendSMSMessage</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">i</span><span class="pun">(</span><span class="str">"Send SMS"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">);</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> phoneNo </span><span class="pun">=</span><span class="pln"> txtphoneNo</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">().</span><span class="pln">toString</span><span class="pun">();</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> message </span><span class="pun">=</span><span class="pln"> txtMessage</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">().</span><span class="pln">toString</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">SmsManager</span><span class="pln"> smsManager </span><span class="pun">=</span><span class="pln"> </span><span class="typ">SmsManager</span><span class="pun">.</span><span class="pln">getDefault</span><span class="pun">();</span><span class="pln">
smsManager</span><span class="pun">.</span><span class="pln">sendTextMessage</span><span class="pun">(</span><span class="pln">phoneNo</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> message</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln"> </span><span class="str">"SMS sent."</span><span class="pun">,</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln">
</span><span class="str">"SMS faild, please try again."</span><span class="pun">,</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_LONG</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
e</span><span class="pun">.</span><span class="pln">printStackTrace</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following will be the content of <b>res/layout/activity_main.xml</b> file:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textViewPhoneNo"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/phone_label"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editTextPhoneNo"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:inputType</span><span class="pun">=</span><span class="atv">"phone"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textViewMessage"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/sms_label"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><EditText</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/editTextSMS"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:inputType</span><span class="pun">=</span><span class="atv">"textMultiLine"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln"> </span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/btnSendSMS"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/send_sms_label"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span></pre>
Following will be the content of <b>res/values/strings.xml</b> to define two new constants:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">SendSMSDemo</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"phone_label"</span><span class="tag">></span><span class="pln">Enter Phone Number:</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"sms_label"</span><span class="tag">></span><span class="pln">Enter SMS Message:</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"send_sms_label"</span><span class="tag">></span><span class="pln">Send SMS</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Following is the default content of <b>AndroidManifest.xml</b>:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.sendsmsdemo"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.SEND_SMS"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.sendsmsdemo.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your <b>SendSMSDemo</b> application. I assume you
have connected your actual Android Mobile device with your computer. To
run the app from Eclipse, open one of your project's activity files and
click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Android Mobile Device" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_mobile_device.jpg" />
Select your mobile device as an option and then check your mobile device which will display following screen:<br />
<img alt="Android Mobile SMS Compose" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/android_mobile_sms_compose.jpg" />
Now you can enter a desired mobile number and a text message to be sent on that number. Finally click on <b>Send SMS</b> button to send your SMS. Make sure your GSM connection is working fine to deliver your SMS to its recipient.<br />
You can take a number of SMS separated by comma and then inside your
program you will have to parse them into an array string and finally you
can use a loop to send message to all the given numbers. That's how you
can write your own SMS client. Next section will show you how to use
existing SMS client to send SMS.<br />
<h2>
Using Built-in Intent to send SMS</h2>
You can use Android Intent to send SMS by calling built-in SMS
functionality of the Android. Following section explains different parts
of our Intent object required to send an SMS.<br />
<h2>
Intent Object - Action to send SMS</h2>
You will use <b>ACTION_VIEW</b> action to launch an SMS client
installed on your Android device. Following is simple syntax to create
an intent with ACTION_VIEW action<br />
<pre class="prettyprint prettyprinted"><span class="typ">Intent</span><span class="pln"> smsIntent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln">ACTION_VIEW</span><span class="pun">);</span></pre>
<h2>
Intent Object - Data/Type to send SMS</h2>
To send an SMS you need to specify <b>smsto:</b> as URI using setData() method and data type will be to <b>vnd.android-dir/mms-sms</b> using setType() method as follows:<br />
<pre class="prettyprint prettyprinted"><span class="pln">smsIntent</span><span class="pun">.</span><span class="pln">setData</span><span class="pun">(</span><span class="typ">Uri</span><span class="pun">.</span><span class="pln">parse</span><span class="pun">(</span><span class="str">"smsto:"</span><span class="pun">));</span><span class="pln">
smsIntent</span><span class="pun">.</span><span class="pln">setType</span><span class="pun">(</span><span class="str">"vnd.android-dir/mms-sms"</span><span class="pun">);</span></pre>
<h2>
Intent Object - Extra to send SMS</h2>
Android has built-in support to add phone number and text message to send an SMS as follows:<br />
<pre class="prettyprint prettyprinted"><span class="pln">smsIntent</span><span class="pun">.</span><span class="pln">putExtra</span><span class="pun">(</span><span class="str">"address"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pun">(</span><span class="str">"0123456789;3393993300"</span><span class="pun">));</span><span class="pln">
smsIntent</span><span class="pun">.</span><span class="pln">putExtra</span><span class="pun">(</span><span class="str">"sms_body"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="str">"Test SMS to Angilla"</span><span class="pun">);</span></pre>
<blockquote>
Here address and sms_body are case sensitive and should be
specified in small characters only. You can specify more than one number
in single string but separated by semi-colon (;).</blockquote>
<h2>
Example</h2>
Following example shows you in practical how to use Intent object to launch SMS client to send an SMS to the given recipients.<br />
<blockquote>
To experiment with this example, you will need actual Mobile
device equipped with latest Android OS, otherwise you will have to
struggle with emulator which may not work.</blockquote>
<table class="src">
<tbody>
<tr><th class="fivepct">Step</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android application and name it as <i>SendSMSDemo</i> under a package <i>com.example.sendsmsdemo</i>. While creating this project, make sure you <i>Target SDK</i> and <i>Compile With</i> at the latest version of Android SDK to use higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify <i>src/MainActivity.java</i> file and add required code to take care of sending SMS.</td></tr>
<tr><td>3</td><td>Modify layout XML file <i>res/layout/activity_main.xml</i> add any GUI component if required. I'm adding a simple button to launch SMS Client.</td></tr>
<tr><td>4</td><td>Modify <i>res/values/strings.xml</i> to define required constant values</td></tr>
<tr><td>5</td><td>Modify <i>AndroidManifest.xml</i> as shown below</td></tr>
<tr><td>6</td><td>Run the application to launch Android emulator and verify the result of the changes done in the aplication.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.sendsmsdemo/MainActivity.java</b>.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">sendsmsdemo</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">net</span><span class="pun">.</span><span class="typ">Uri</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Log</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Toast</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Button</span><span class="pln"> startBtn </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">sendSMS</span><span class="pun">);</span><span class="pln">
startBtn</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
sendSMS</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> sendSMS</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">i</span><span class="pun">(</span><span class="str">"Send SMS"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Intent</span><span class="pln"> smsIntent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln">ACTION_VIEW</span><span class="pun">);</span><span class="pln">
smsIntent</span><span class="pun">.</span><span class="pln">setData</span><span class="pun">(</span><span class="typ">Uri</span><span class="pun">.</span><span class="pln">parse</span><span class="pun">(</span><span class="str">"smsto:"</span><span class="pun">));</span><span class="pln">
smsIntent</span><span class="pun">.</span><span class="pln">setType</span><span class="pun">(</span><span class="str">"vnd.android-dir/mms-sms"</span><span class="pun">);</span><span class="pln">
smsIntent</span><span class="pun">.</span><span class="pln">putExtra</span><span class="pun">(</span><span class="str">"address"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> </span><span class="pun">(</span><span class="str">"0123456789"</span><span class="pun">));</span><span class="pln">
smsIntent</span><span class="pun">.</span><span class="pln">putExtra</span><span class="pun">(</span><span class="str">"sms_body"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="str">"Test SMS to Angilla"</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
startActivity</span><span class="pun">(</span><span class="pln">smsIntent</span><span class="pun">);</span><span class="pln">
finish</span><span class="pun">();</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">i</span><span class="pun">(</span><span class="str">"Finished sending SMS..."</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="pln">android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">ActivityNotFoundException</span><span class="pln"> ex</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="typ">MainActivity</span><span class="pun">.</span><span class="kwd">this</span><span class="pun">,</span><span class="pln">
</span><span class="str">"SMS faild, please try again later."</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following will be the content of <b>res/layout/activity_main.xml</b> file:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln"> </span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/sendSMS"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/compose_sms"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span></pre>
Following will be the content of <b>res/values/strings.xml</b> to define two new constants:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">SendSMSDemo</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"compose_sms"</span><span class="tag">></span><span class="pln">Compose SMS</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Following is the default content of <b>AndroidManifest.xml</b>:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.sendsmsdemo"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.sendsmsdemo.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your <b>SendSMSDemo</b> application. I assume you
have connected your actual Android Mobile device with your computer. To
run the app from Eclipse, open one of your project's activity files and
click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Android Mobile Device" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_mobile_device.jpg" />
Select your mobile device as an option and then check your mobile device which will display following screen:<br />
<img alt="Android Mobile SMS Compose" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/android_mobile_sms_compose2.jpg" />
Now use <b>Compose SMS</b> button to launch Android built-in SMS clients which is shown below:<br />
<img alt="Android Mobile SMS Screen" src="http://1.1.1.4/bmi/www.tutorialspoint.com/android/images/android_mobile_sms_screen2.jpg" />
You can modify either of the given default fields and finally use
send SMS button (marked with red rectangle) to send your SMS to the
mentioned recipient.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-50173674885430607472015-05-23T11:45:00.002-07:002015-05-23T11:58:43.474-07:00Android Alert Dialog TutorialSome times in your application , if you wanted to ask the user about
taking a decision between yes or no in response of any particular action
taken by the user, by remaining in the same activity and without
changing the screen, you can use Alert Dialog.<br />
In order to make an alert dialog , you need to make an object of
AlertDialogBuilder which an inner class of AlertDialog. Its syntax is
given below<br />
<pre class="prettyprint prettyprinted"><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pln"> alertDialogBuilder </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span></pre>
Now you have to set the positive (yes) or negative (no) button using the object of the AlertDialogBuilder class. Its syntax is <br />
<pre class="prettyprint prettyprinted"><span class="pln">alertDialogBuilder</span><span class="pun">.</span><span class="pln">setPositiveButton</span><span class="pun">(</span><span class="typ">CharSequence</span><span class="pln"> text</span><span class="pun">,</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pln"> listener</span><span class="pun">)</span><span class="pln">
alertDialogBuilder</span><span class="pun">.</span><span class="pln">setNegativeButton</span><span class="pun">(</span><span class="typ">CharSequence</span><span class="pln"> text</span><span class="pun">,</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pln"> listener</span><span class="pun">)</span></pre>
Apart from this , you can use other functions provided by the builder
class to customize the alert dialog. These are listed below<br />
<table class="src">
<tbody>
<tr><th>Sr.No</th><th>Method type & description</th></tr>
<tr><td>1</td><td><b>setIcon(Drawable icon)</b><br />
This method set the icon of the alert dialog box.</td></tr>
<tr><td>2</td><td><b>setCancelable(boolean cancelable)</b><br />
This method sets the property that the dialog can be cancelled or not</td></tr>
<tr><td>3</td><td><b>setMessage(CharSequence message)</b><br />
This method sets the message to be displayed in the alert dialog</td></tr>
<tr><td>4</td><td><b>setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)</b><br />
This
method sets list of items to be displayed in the dialog as the content.
The selected option will be notified by the listener</td></tr>
<tr><td>5</td><td><b>setOnCancelListener(DialogInterface.OnCancelListener onCancelListener)</b><br />
This method Sets the callback that will be called if the dialog is canceled.</td></tr>
<tr><td>6</td><td><b>setTitle(CharSequence title)</b><br />
This method set the title to be appear in the dialog</td></tr>
</tbody></table>
After creating and setting the dialog builder , you will create an
alert dialog by calling the create() method of the builder class. Its
syntax is<br />
<pre class="prettyprint prettyprinted"><span class="typ">AlertDialog</span><span class="pln"> alertDialog </span><span class="pun">=</span><span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">create</span><span class="pun">();</span><span class="pln">
alertDialog</span><span class="pun">.</span><span class="pln">show</span><span class="pun">();</span></pre>
This will create the alert dialog and will show it on the screen.<br />
<h2>
Example</h2>
The following example demonstrates the use of AlertDialog in android.
It uses three different activities to demonstrate it. The dialog asks
you to jump to positive activity or negative activity or cancel it.<br />
To experiment with this example , you need to run this on an emulator or an actual device.<br />
<table class="src">
<tbody>
<tr><th>Steps</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android
application and name it as AlertDialog under a package
com.example.alertdialog. While creating this project, make sure you
Target SDK and Compile With at the latest version of Android SDK to use
higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify src/MainActivity.java file to add alert dialog code to launch the dialog.</td></tr>
<tr><td>3</td><td>Modify layout XML file res/layout/activity_main.xml add any GUI component if required.</td></tr>
<tr><td>4</td><td>Create a new activity called PositiveActivity and confim it by visiting src/PositiveActivity.java.</td></tr>
<tr><td>5</td><td>Modify layout XML file of the newly created activity res/layout/activity_positive.xml add any GUI component if required.</td></tr>
<tr><td>6</td><td>Create a new activity called NegativeActivity and confim it by visiting src/NegativeActivity.java.</td></tr>
<tr><td>7</td><td>Modify layout XML file of the newly created activity res/layout/activity_negative.xml add any GUI component if required.</td></tr>
<tr><td>8</td><td>Modify res/values/strings.xml to define required constant values</td></tr>
<tr><td>9</td><td>Run the application and choose a running android device and install the application on it and verify the results.</td></tr>
</tbody></table>
Here is the modified code of <b>src/com.example.alertdialog/MainActivity.java</b><br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">alertdialog</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">alertdialog</span><span class="pun">.*;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">AlertDialog</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">DialogInterface</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> open</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> view</span><span class="pun">){</span><span class="pln">
</span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pln"> alertDialogBuilder </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AlertDialog</span><span class="pun">.</span><span class="typ">Builder</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span><span class="pln">
alertDialogBuilder</span><span class="pun">.</span><span class="pln">setMessage</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="kwd">string</span><span class="pun">.</span><span class="pln">decision</span><span class="pun">);</span><span class="pln">
alertDialogBuilder</span><span class="pun">.</span><span class="pln">setPositiveButton</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="kwd">string</span><span class="pun">.</span><span class="pln">positive_button</span><span class="pun">,</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> arg0</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> arg1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Intent</span><span class="pln"> positveActivity </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln">com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">alertdialog</span><span class="pun">.</span><span class="typ">PositiveActivity</span><span class="pun">.</span><span class="kwd">class</span><span class="pun">);</span><span class="pln">
startActivity</span><span class="pun">(</span><span class="pln">positveActivity</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
alertDialogBuilder</span><span class="pun">.</span><span class="pln">setNegativeButton</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="kwd">string</span><span class="pun">.</span><span class="pln">negative_button</span><span class="pun">,</span><span class="pln">
</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DialogInterface</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">DialogInterface</span><span class="pln"> dialog</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> which</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Intent</span><span class="pln"> negativeActivity </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">(),</span><span class="pln">com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">alertdialog</span><span class="pun">.</span><span class="typ">NegativeActivity</span><span class="pun">.</span><span class="kwd">class</span><span class="pun">);</span><span class="pln">
startActivity</span><span class="pun">(</span><span class="pln">negativeActivity</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="typ">AlertDialog</span><span class="pln"> alertDialog </span><span class="pun">=</span><span class="pln"> alertDialogBuilder</span><span class="pun">.</span><span class="pln">create</span><span class="pun">();</span><span class="pln">
alertDialog</span><span class="pun">.</span><span class="pln">show</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span></pre>
Here is the default code of <b>src/com.example.alertdialog/PositiveActivity.java</b><br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">alertdialog</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">PositiveActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_positive</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">positive</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span></pre>
Here is the default code of <b>src/com.example.alertdialog/NegativeActivity.java</b><br />
<pre class="prettyprint prettyprinted"><span class="pln">
</span><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">alertdialog</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">NegativeActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_negative</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// Inflate the menu; this adds items to the action bar if it is present.</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">negative</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span></pre>
Here is the modified code of <b>res/layout/activity_main.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_centerHorizontal</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"170dp"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"open"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Here is the modified code of <b>res/layout/activity_positive.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".PositiveActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentLeft</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_marginLeft</span><span class="pun">=</span><span class="atv">"14dp"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"20dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/positive"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceLarge"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Here is the modified code of <b>res/layout/activity_negative.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".NegativeActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/textView1"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_alignParentLeft</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_alignParentTop</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_marginLeft</span><span class="pun">=</span><span class="atv">"14dp"</span><span class="pln">
</span><span class="atn">android:layout_marginTop</span><span class="pun">=</span><span class="atv">"17dp"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/negative"</span><span class="pln">
</span><span class="atn">android:textAppearance</span><span class="pun">=</span><span class="atv">"?android:attr/textAppearanceLarge"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Here is the modified code of<b>Strings.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">AlertDialog</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"title_activity_positive"</span><span class="tag">></span><span class="pln">PositiveActivity</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"title_activity_negative"</span><span class="tag">></span><span class="pln">NegativeActivity</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"positive"</span><span class="tag">></span><span class="pln">Positive Activity</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"negative"</span><span class="tag">></span><span class="pln">Negative Activity</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"decision"</span><span class="tag">></span><span class="pln">Are you sure, you wanted to make this decision</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"positive_button"</span><span class="tag">></span><span class="pln">+ive</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"negative_button"</span><span class="tag">></span><span class="pln">-ive</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Here is the default code of <b>AndroidManifest.xml</b><br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.alertdialog"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.alertdialog.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.alertdialog.PositiveActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/title_activity_positive"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.alertdialog.NegativeActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/title_activity_negative"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your Camera application. I assume you have connected
your actual Android Mobile device with your computer. To run the app
from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Before starting your application, Eclipse will
display following window to select an option where you want to run your
Android application.<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/camera5.jpg" />
Select your mobile device as an option and then check your mobile device which will display following screen:<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.4/bmi/www.tutorialspoint.com/android/images/android_alert_dialog1.jpg" />
Now just tap the button hello world to see the alert box , which would be something like this<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/android_alert_dialog2.jpg" />
Now select any of the two buttons and see the respective activity
loading up. In case you select positve button , this screen would appear<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/android_alert_dialog3.jpg" />
Now press back button on your device , and this time select negative
from your alert dialog. The following screen would appear this time<br />
<img alt="Anroid Camera Tutorial" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/android_alert_dialog4.jpg" />ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-18047059757049196542015-05-23T11:44:00.002-07:002015-05-23T11:59:02.960-07:00Android Custom ComponentsAndroid offers a great list of pre-built widgets like Button,
TextView, EditText, ListView, CheckBox, RadioButton, Gallery, Spinner,
AutoCompleteTextView etc. which you can use directly in your Android
application development, but there may be a situation when you are not
satisfied with existing functionality of any of the available widgets.
Android provides you with means of creating your own custom components
which you can customized to suit your needs.<br />
If you only need to make small adjustments to an existing widget or
layout, you can simply subclass the widget or layout and override its
methods which will give you precise control over the appearance and
function of a screen element.<br />
This tutorial explains you how to create custom Views and use them in your application using simple and easy steps.<br />
<h2>
Creating a Simple Custom Component</h2>
The simplest way to create your custom component is to extend an
existing widget class or subclass with your own class if you want to
extend the functionality of existing widget like Button, TextView,
EditText, ListView, CheckBox etc. otherwise you can do everything
yourself by starting with the <i>android.view.View</i> class.<br />
At its simplest form you will have to write your constructors
corresponding to all the constructors of the base class. For example if
you are going to extend <b>TextView</b> to create a <b>DateView</b> then following three constructors will be created for DateView class:<br />
<pre class="prettyprint prettyprinted"><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">DateView</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">TextView</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">DateView</span><span class="pun">(</span><span class="typ">Context</span><span class="pln"> context</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">(</span><span class="pln">context</span><span class="pun">);</span><span class="pln">
</span><span class="com">//--- Additional custom code --</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">DateView</span><span class="pun">(</span><span class="typ">Context</span><span class="pln"> context</span><span class="pun">,</span><span class="pln"> </span><span class="typ">AttributeSet</span><span class="pln"> attrs</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">(</span><span class="pln">context</span><span class="pun">,</span><span class="pln"> attrs</span><span class="pun">);</span><span class="pln">
</span><span class="com">//--- Additional custom code --</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">DateView</span><span class="pun">(</span><span class="typ">Context</span><span class="pln"> context</span><span class="pun">,</span><span class="pln"> </span><span class="typ">AttributeSet</span><span class="pln"> attrs</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> defStyle</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">(</span><span class="pln">context</span><span class="pun">,</span><span class="pln"> attrs</span><span class="pun">,</span><span class="pln"> defStyle</span><span class="pun">);</span><span class="pln">
</span><span class="com">//--- Additional custom code --</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Because you have created DateView as child of TextView so it will
have access on all the attributes, methods and events related to
TextView and you will be able to use them without any further
implementation. You will implement additional custom functionality
inside your own code as explained in the given examples below.<br />
If you have requirement for implementing custom drawing/sizing for your custom widgets then you need to override <b>onMeasure(int widthMeasureSpec, int heightMeasureSpec)</b> and <b>onDraw(Canvas canvas)</b>
methods. If you are not going to resize or change the shape of your
built-in component then you do not need either of these methods in your
custom component.<br />
The <i>onMeasure()</i> method coordinate with the layout manager to report the widget's width and height, and you need to call <i>setMeasuredDimension(int width, int height)</i> from inside this method to report the dimensions.<br />
You can then execute your custom drawing inside the <i>onDraw(Canvas canvas)</i>
method, where android.graphis.Canvas is pretty similar to its
counterpart in Swing, and has methods such as drawRect(), drawLine(),
drawString(), drawBitmap() etc. which you can use to draw your
component.<br />
Once you are done with the implementation of a custom component by
extending existing widget, you will be able to instantiate these custom
components in two ways in your application development:<br />
<h3>
Instantiate using code inside activity class</h3>
It is very similar way of instantiating custom component the way you
instantiate built-in widget in your activity class. For example you can
use following code to instantiate above defined custom component:<br />
<pre class="prettyprint prettyprinted"><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="typ">DateView</span><span class="pln"> dateView </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DateView</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">dateView</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span></pre>
Check this example to understand how to Instantiate a Basic Android Custom Component using code inside an activity.<br />
<h3>
Instantiate using Layout XML file</h3>
Traditionally you use Layout XML file to instantiate your built-in
widgets, same concept will apply on your custom widgets as well so you
will be able to instantiate your custom component using Layout XML file
as explained below. Here <b>com.example.dateviewdemo</b> is the package where you have put all the code related to <b>DateView</b> class and <b>DateView</b> is Java class name where you have put complete logic of your custom component.<br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><com.example.dateviewdemo.DateView</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:textColor</span><span class="pun">=</span><span class="atv">"#fff"</span><span class="pln">
</span><span class="atn">android:textSize</span><span class="pun">=</span><span class="atv">"40sp"</span><span class="pln">
</span><span class="atn">android:background</span><span class="pun">=</span><span class="atv">"#000"</span><span class="pln">
</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
It is important to note here that we are using all TextView
attributes along with custom component without any change. Similar way
you will be able to use all the events, and methods along with DateView
component.<br />
Check this example to understand how to <a href="http://www.tutorialspoint.com/android/simple_android_custom_component_using_xml.htm">Instantiate a Basic Android Custom Component</a> using Layout XML file.<br />
<h2>
Custom Component with Custom Attributes</h2>
We have seen how we can extend functionality of built-in widgets but
in both the examples given above we saw that extended component can
make use of all the default attributes of its parent class. But consider
a situation when you want to create your own attribute from scratch.
Below is a simple procedure to create and use new attributes for Android
Custom components. Consider we want to introduce three attributes and
will use them as shown below:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><com.example.dateviewdemo.DateView</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:textColor</span><span class="pun">=</span><span class="atv">"#fff"</span><span class="pln">
</span><span class="atn">android:textSize</span><span class="pun">=</span><span class="atv">"40sp"</span><span class="pln">
</span><span class="atn">custom:delimiter</span><span class="pun">=</span><span class="atv">"-"</span><span class="pln">
</span><span class="atn">custom:fancyText</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="tag">/></span></pre>
<h3>
Step 1</h3>
The first step to enable us to use our custom attributes is to define them in a new xml file under <i>res/values/</i> and call it <b>attrs.xml</b>. Let's have a look on an example attrs.xml file:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><declare-styleable</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"DateView"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><attr</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"delimiter"</span><span class="pln"> </span><span class="atn">format</span><span class="pun">=</span><span class="atv">"string"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><attr</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"fancyText"</span><span class="pln"> </span><span class="atn">format</span><span class="pun">=</span><span class="atv">"boolean"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></declare-styleable></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Here the <b>name=value</b> is what we want to use in our Layout XML file as attribute, and the <b>format=type</b> is the type of attribute.<br />
<h3>
Step 2</h3>
Your second step will be to read these attributes from Layout XML
file and set them for the component. This logic will go in the
constructors that get passed an <i>AttributeSet</i>, since that is what contains the XML attributes. To read the values in the XML, you need to first create a <i>TypedArray</i> from the <i>AttributeSet</i>, then use that to read and set the values as shown in the below example code:<br />
<pre class="prettyprint prettyprinted"><span class="typ">TypedArray</span><span class="pln"> a </span><span class="pun">=</span><span class="pln"> context</span><span class="pun">.</span><span class="pln">obtainStyledAttributes</span><span class="pun">(</span><span class="pln">attrs</span><span class="pun">,</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">styleable</span><span class="pun">.</span><span class="typ">DateView</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> N </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">getIndexCount</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun"><</span><span class="pln"> N</span><span class="pun">;</span><span class="pln"> </span><span class="pun">++</span><span class="pln">i</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> attr </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">getIndex</span><span class="pun">(</span><span class="pln">i</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">switch</span><span class="pln"> </span><span class="pun">(</span><span class="pln">attr</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">styleable</span><span class="pun">.</span><span class="typ">DateView_delimiter</span><span class="pun">:</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> delimiter </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">getString</span><span class="pun">(</span><span class="pln">attr</span><span class="pun">);</span><span class="pln">
</span><span class="com">//...do something with delimiter...</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">styleable</span><span class="pun">.</span><span class="typ">DateView_fancyText</span><span class="pun">:</span><span class="pln">
</span><span class="kwd">boolean</span><span class="pln"> fancyText </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">getBoolean</span><span class="pun">(</span><span class="pln">attr</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">);</span><span class="pln">
</span><span class="com">//...do something with fancyText...</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
a</span><span class="pun">.</span><span class="pln">recycle</span><span class="pun">();</span></pre>
<h3>
Step 3</h3>
Finally you can use your defined attributes in your Layout XML file as follows:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">xmlns:custom</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/com.example.dateviewdemo"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:paddingBottom</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">android:paddingLeft</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingRight</span><span class="pun">=</span><span class="atv">"@dimen/activity_horizontal_margin"</span><span class="pln">
</span><span class="atn">android:paddingTop</span><span class="pun">=</span><span class="atv">"@dimen/activity_vertical_margin"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><com.example.dateviewdemo.DateView</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:textColor</span><span class="pun">=</span><span class="atv">"#fff"</span><span class="pln">
</span><span class="atn">android:textSize</span><span class="pun">=</span><span class="atv">"40sp"</span><span class="pln">
</span><span class="atn">custom:delimiter</span><span class="pun">=</span><span class="atv">"-"</span><span class="pln">
</span><span class="atn">custom:fancyText</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
The important part is <i>xmlns:custom="http://schemas.android.com/apk/res/com.example.dateviewdemo"</i>. Note that <i>http://schemas.android.com/apk/res/</i>
will remain as is, but last part will be set to your package name and
also that you can use anything after xmlns:, in this example I used <b>custom</b>, but you could use any name you likeayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-28348119404491782012015-05-23T11:42:00.004-07:002015-05-23T11:59:17.315-07:00Android Styles and ThemesIf you already know about Cascading Style Sheet (CSS) in web design
then to understand Android Style also works very similar way. There are
number of attributes associated with each Android widget which you can
set to change your application look and feel. A style can specify
properties such as height, padding, font color, font size, background
color, and much more.<br />
You can specify these attributes in Layout file as follows:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/text_id"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:capitalize</span><span class="pun">=</span><span class="atv">"characters"</span><span class="pln">
</span><span class="atn">android:textColor</span><span class="pun">=</span><span class="atv">"#00FF00"</span><span class="pln">
</span><span class="atn">android:typeface</span><span class="pun">=</span><span class="atv">"monospace"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span></pre>
But this way we need to define style attributes for every attribute
separately which is not good for source code maintenance point of view.
So we work with styles by defining them in separate file as explained
below.<br />
<h2>
Defining Styles</h2>
A style is defined in an XML resource that is separate from the XML that specifies the layout. This XML file resides under <b>res/values/</b> directory of your project and will have <b><resources></b>
as the root node which is mandatory for the style file. The name of the
XML file is arbitrary, but it must use the .xml extension.<br />
You can define multiple styles per file using <b><style></b> tag but each style will have its name that uniquely identifies the style. Android style attributes are set using <b><item></b> tag as shown below:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><style</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"CustomFontStyle"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:layout_width"</span><span class="tag">></span><span class="pln">fill_parent</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:layout_height"</span><span class="tag">></span><span class="pln">wrap_content</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:capitalize"</span><span class="tag">></span><span class="pln">characters</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:typeface"</span><span class="tag">></span><span class="pln">monospace</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:textSize"</span><span class="tag">></span><span class="pln">12pt</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:textColor"</span><span class="tag">></span><span class="pln">#00FF00</span><span class="tag"></item></span><span class="pln">/>
</span><span class="tag"></style></span><span class="pln">
</span><span class="tag"></resources></span></pre>
<blockquote>
The value for the <item> can be a keyword string, a
hex color, a reference to another resource type, or other value
depending on the style property.</blockquote>
<h2>
Using Styles</h2>
Once your style is defined, you can use it in your XML Layout file using <b>style</b> attribute as follows:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/text_id"</span><span class="pln">
</span><span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="lit">@style</span><span class="pun">/</span><span class="typ">CustomFontStyle</span><span class="atv">"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span></pre>
To understand the concept related to Android Style, you can check Style Demo Example.<br />
<h2>
Style Inheritance</h2>
Android supports style Inheritance in very much similar way as
cascading style sheet in web design. You can use this to inherit
properties from an existing style and then define only the properties
that you want to change or add.<br />
Its simple, to create a new style <b>LargeFont</b> that inherits the <b>CustomFontStyle</b> style defined above, but make the font size big, you can author the new style like this:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><style</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"CustomFontStyle.LargeFont"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:textSize"</span><span class="tag">></span><span class="pln">20ps</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"></style></span><span class="pln">
</span><span class="tag"></resources></span></pre>
You can reference this new style as <b>@style/CustomFontStyle.LargeFont</b>
in your XML Layout file. You can continue inheriting like this as many
times as you'd like, by chaining names with periods. For example, you
can extend FontStyle.LargeFont to be Red, with:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><style</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"CustomFontStyle.LargeFont.Red"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:textColor"</span><span class="tag">></span><span class="pln">#FF0000</span><span class="tag"></item></span><span class="pln">/>
</span><span class="tag"></style></span><span class="pln">
</span><span class="tag"></resources></span></pre>
This technique for inheritance by chaining together names only works
for styles defined by your own resources. You can't inherit Android
built-in styles this way. To reference an Android built-in style, such
as <b>TextAppearance</b>, you must use the <b>parent</b> attribute as shown below:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><style</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"CustomFontStyle"</span><span class="pln"> </span><span class="atn">parent</span><span class="pun">=</span><span class="atv">"@android:style/TextAppearance"</span><span class="tag">></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:layout_width"</span><span class="tag">></span><span class="pln">fill_parent</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:layout_height"</span><span class="tag">></span><span class="pln">wrap_content</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:capitalize"</span><span class="tag">></span><span class="pln">characters</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:typeface"</span><span class="tag">></span><span class="pln">monospace</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:textSize"</span><span class="tag">></span><span class="pln">12pt</span><span class="tag"></item></span><span class="pln">
</span><span class="tag"><item</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"android:textColor"</span><span class="tag">></span><span class="pln">#00FF00</span><span class="tag"></item></span><span class="pln">/>
</span><span class="tag"></style></span><span class="pln">
</span><span class="tag"></resources></span></pre>
<h2>
Android Themes</h2>
Hope you understood the concept of Style, so now let's try to understand what is a <b>Theme</b>. A theme is nothing but an Android style applied to an entire Activity or application, rather than an individual View.<br />
Thus, when a style is applied as a theme, every <b>View</b> in the Activity or application will apply each style property that it supports. For example, you can apply the same <b>CustomFontStyle</b> style as a theme for an Activity and then all text inside that <b>Activity</b> will have green monospace font.<br />
To set a theme for all the activities of your application, open the <b>AndroidManifest.xml</b> file and edit the <b><application></b> tag to include the <b>android:theme</b> attribute with the style name. For example:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><application</span><span class="pln"> </span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/CustomFontStyle"</span><span class="tag">></span></pre>
But if you want a theme applied to just one Activity in your
application, then add the android:theme attribute to the
<activity> tag only. For example:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><activity</span><span class="pln"> </span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/CustomFontStyle"</span><span class="tag">></span></pre>
There are number of default themes defined by Android which you can use directly or inherit them using <b>parent</b> attribute as follows:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><style</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"CustomTheme"</span><span class="pln"> </span><span class="atn">parent</span><span class="pun">=</span><span class="atv">"android:Theme.Light"</span><span class="tag">></span><span class="pln">
</span><span class="pun">...</span><span class="pln">
</span><span class="tag"></style></span></pre>
To understand the concept related to Android Theme, you can check Theme Demo Example.<br />
<h2>
Default Styles & Themes</h2>
The Android platform provides a large collection of styles and themes
that you can use in your applications. You can find a reference of all
available styles in the <b>R.style</b> class. To use the styles listed
here, replace all underscores in the style name with a period. For
example, you can apply the Theme_NoTitleBar theme with
"@android:style/Theme.NoTitleBar".ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-47558486754955662822015-05-23T11:42:00.000-07:002015-05-23T11:59:28.903-07:00Android Event HandlingEvents are a useful way to collect data about a user's interaction
with interactive components of your app, like button presses or screen
touch etc. The Android framework maintains an event queue into which
events are placed as they occur and then each event is removed from the
queue on a first-in, first-out (FIFO) basis. You can capture these
events in your program and take appropriate action as per requirements.<br />
There are following three concepts related to Android Event Management:<br />
<ul class="list">
<li><b>Event Listeners:</b> The <b>View</b> class is mainly involved
in building up a Android GUI, same View class provides a number of Event
Listeners. The Event Listener is the object that receives notification
when an event happes.</li>
<li><b>Event Listeners Registration:</b> Event Registration is the
process by which an Event Handler gets registered with an Event Listener
so that the handler is called when the Event Listener fires the event.</li>
<li><b>Event Handlers:</b> When an event happens and we have
registered and event listener fo the event, the event listener calls
the Event Handlers, which is the method that actually handles the event.</li>
</ul>
<h2>
Event Listeners & Event Handlers</h2>
<table class="src">
<tbody>
<tr><th style="vertical-align: top; width: 20%;">Event Handler</th><th>Event Listener & Description</th></tr>
<tr><td>onClick()</td><td><b>OnClickListener()</b><br />
This is called
when the user either clicks or touches or focuses upon any widget like
button, text, image etc. You will use onClick() event handler to handle
such event.</td></tr>
<tr><td>onLongClick()</td><td><b>OnLongClickListener()</b><br />
This is
called when the user either clicks or touches or focuses upon any
widget like button, text, image etc. for one or more seconds. You will
use onLongClick() event handler to handle such event.</td></tr>
<tr><td>onFocusChange()</td><td><b>OnFocusChangeListener()</b><br />
This
is called when the widget looses its focus ie. user goes away from the
view item. You will use onFocusChange() event handler to handle such
event.</td></tr>
<tr><td>onKey()</td><td><b>OnFocusChangeListener()</b><br />
This is called
when the user is focused on the item and presses or releases a hardware
key on the device. You will use onKey() event handler to handle such
event.</td></tr>
<tr><td>onTouch()</td><td><b>OnTouchListener()</b><br />
This is called
when the user presses the key, releases the key, or any movement gesture
on the screen. You will use onTouch() event handler to handle such
event.</td></tr>
<tr><td>onMenuItemClick()</td><td><b>OnMenuItemClickListener()</b><br />
This is called when the user selects a menu item. You will use onMenuItemClick() event handler to handle such event.</td></tr>
</tbody></table>
There are many more event listeners available as a part of <b>View</b>
class like OnHoverListener, OnDragListener etc which may be needed for
your application. So I recommend to refer official documentation for
Android application development in case you are going to develop a
sophisticated apps.<br />
<h2>
Event Listeners Registration:</h2>
Event Registration is the process by which an Event Handler gets
registered with an Event Listener so that the handler is called when the
Event Listener fires the event. Though there are several tricky ways to
register your event listener for any event, but I'm going to list down
only top 3 ways, out of which you can use any of them based on the
situation.<br />
<ul class="list">
<li>Using an Anonymous Inner Class</li>
<li>Activity class implements the Listener interface.</li>
<li>Using Layout file activity_main.xml to specify event handler directly.</li>
</ul>
Below section will provide you detailed examples on all the three scenarios:<br />
<h2>
Event Handling Examples</h2>
<h3>
Event Listeners Registration Using an Anonymous Inner Class</h3>
Here you will create an anonymous implementation of the listener and
will be useful if each class is applied to a single control only and you
have advantage to pass arguments to event handler. In this approach
event handler methods can access private data of Activity. No reference
is needed to call to Activity.<br />
But if you applied the handler to more than one control, you would
have to cut and paste the code for the handler and if the code for the
handler is long, it makes the code harder to maintain.<br />
Following are the simple steps to show how we will make use of
separate Listener class to register and capture click event. Similar way
you can implement your listener for any other required event type.<br />
<table class="src">
<tbody>
<tr><th class="fivepct">Step</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android application and name it as <i>EventDemo</i> under a package <i>com.example.eventdemo</i> as explained in the <i>Hello World Example</i> chapter.</td></tr>
<tr><td>2</td><td>Modify <i>src/MainActivity.java</i> file to add click event listeners and handlers for the two buttons defined.</td></tr>
<tr><td>3</td><td>Modify the detault content of <i>res/layout/activity_main.xml</i> file to include Android UI controls.</td></tr>
<tr><td>4</td><td>Define required constants in <i>res/values/strings.xml</i> file</td></tr>
<tr><td>5</td><td>Run the application to launch Android emulator and verify the result of the changes done in the aplication.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.eventdemo/MainActivity.java</b>. This file can include each of the fundamental lifecycle methods.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">eventdemo</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">TextView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="com">//--- find both the buttons---</span><span class="pln">
</span><span class="typ">Button</span><span class="pln"> sButton </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button_s</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Button</span><span class="pln"> lButton </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button_l</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- register click event with first button ---</span><span class="pln">
sButton</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// --- find the text view --</span><span class="pln">
</span><span class="typ">TextView</span><span class="pln"> txtView </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TextView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">text_id</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- change text size --</span><span class="pln">
txtView</span><span class="pun">.</span><span class="pln">setTextSize</span><span class="pun">(</span><span class="lit">14</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="com">// -- register click event with second button ---</span><span class="pln">
lButton</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// --- find the text view --</span><span class="pln">
</span><span class="typ">TextView</span><span class="pln"> txtView </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TextView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">text_id</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- change text size --</span><span class="pln">
txtView</span><span class="pun">.</span><span class="pln">setTextSize</span><span class="pun">(</span><span class="lit">24</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following will be the content of <b>res/layout/activity_main.xml</b> file:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button_s"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/button_small"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button_l"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/button_large"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/text_id"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:capitalize</span><span class="pun">=</span><span class="atv">"characters"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span></pre>
Following will be the content of <b>res/values/strings.xml</b> to define two new constants:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">EventDemo</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"button_small"</span><span class="tag">></span><span class="pln">Small Font</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"button_large"</span><span class="tag">></span><span class="pln">Large Font</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Following is the default content of <b>AndroidManifest.xml</b>:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.guidemo"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.guidemo.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your <b>EventDemo</b> application. I assume you had created your <b>AVD</b> while doing environment setup. To run the app from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Eclipse installs the app on your AVD and starts
it and if everything is fine with your setup and application, it will
display following Emulator window:<br />
<img alt="Android Event Handling" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_event_handling.jpg" />
Now you try to click on two buttons one by one and you will see that font of the <b>Hello World</b> text will change, which happens because registered click event handler method is being called against each click event.<br />
<h3>
Registration Using the Activity Implements Listener Interface</h3>
Here your Activity class implements the Listener interface and you
put the handler method in the main Activity and then you call
setOnClickListener(this).<br />
This approach is fine if your application has only a single control
of that Listener type otherwise you will have to do further programming
to check which control has generated event. Second you cannot pass
arguments to the Listener so, again, works poorly for multiple controls.<br />
Following are the simple steps to show how we will implement Listener
class to register and capture click event. Similar way you can
implement your listener for any other required event type.<br />
<table class="src">
<tbody>
<tr><th class="fivepct">Step</th><th>Description</th></tr>
<tr><td>1</td><td>We do not need to create this application from scratch, so let's make use of above created Android application <i>EventDemo</i>.</td></tr>
<tr><td>2</td><td>Modify <i>src/MainActivity.java</i> file to add click event listeners and handlers for the two buttons defined.</td></tr>
<tr><td>3</td><td>We are not making any change in <i>res/layout/activity_main.xml</i>, it will remain as shown above.</td></tr>
<tr><td>4</td><td>We are also not making any change in <i>res/values/strings.xml</i> file, it will also remain as shown above.</td></tr>
<tr><td>5</td><td>Run the application to launch Android emulator and verify the result of the changes done in the aplication.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.eventdemo/MainActivity.java</b>. This file can include each of the fundamental lifecycle methods.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">eventdemo</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnClickListener</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">TextView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="kwd">implements</span><span class="pln"> </span><span class="typ">OnClickListener</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="com">//--- find both the buttons---</span><span class="pln">
</span><span class="typ">Button</span><span class="pln"> sButton </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button_s</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Button</span><span class="pln"> lButton </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Button</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button_l</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- register click event with first button ---</span><span class="pln">
sButton</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- register click event with second button ---</span><span class="pln">
lButton</span><span class="pun">.</span><span class="pln">setOnClickListener</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//--- Implement the OnClickListener callback</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">v</span><span class="pun">.</span><span class="pln">getId</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button_s</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="com">// --- find the text view --</span><span class="pln">
</span><span class="typ">TextView</span><span class="pln"> txtView </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TextView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">text_id</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- change text size --</span><span class="pln">
txtView</span><span class="pun">.</span><span class="pln">setTextSize</span><span class="pun">(</span><span class="lit">14</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">v</span><span class="pun">.</span><span class="pln">getId</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">button_l</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="com">// --- find the text view --</span><span class="pln">
</span><span class="typ">TextView</span><span class="pln"> txtView </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TextView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">text_id</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- change text size --</span><span class="pln">
txtView</span><span class="pun">.</span><span class="pln">setTextSize</span><span class="pun">(</span><span class="lit">24</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Now again let's try to run your <b>EventDemo</b> application. I assume you had created your <b>AVD</b> while doing environment setup. To run the app from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Eclipse installs the app on your AVD and starts
it and if everything is fine with your setup and application, it will
display following Emulator window:<br />
<img alt="Android Event Handling" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_event_handling.jpg" />
Now you try to click on two buttons one by one and you will see that font of the <b>Hello World</b> text will change, which happens because registered click event handler method is being called against each click event.<br />
<h3>
Registration Using Layout file activity_main.xml</h3>
Here you put your event handlers in Activity class without
implementing a Listener interface or call to any listener method. Rather
you will use the layout file (activity_main.xml) to specify the handler
method via the
<b>android:onClick</b> attribute for click event. You can control click
events differently for different control by passing different event
handler methods. <br />
The event handler method must have a void return type and take a View
as an argument. However, the method name is arbitrary, and the main
class need not implement any particular interface.<br />
This approach does not allow you to pass arguments to Listener and
for the Android developers it will be difficult to know which method is
the handler for which control until they look into activity_main.xml
file. Second, you can not handle any other event except click event
using this approach.<br />
Following are the simple steps to show how we can make use of layout file Main.xml to register and capture click event.<br />
<table class="src">
<tbody>
<tr><th class="fivepct">Step</th><th>Description</th></tr>
<tr><td>1</td><td>We do not need to create this application from scratch, so let's make use of above created Android application <i>EventDemo</i>.</td></tr>
<tr><td>2</td><td>Modify <i>src/MainActivity.java</i> file to add click event listeners and handlers for the two buttons defined.</td></tr>
<tr><td>3</td><td>Modify layout file <i>res/layout/activity_main.xml</i>, to specify event handlers for the two buttons.</td></tr>
<tr><td>4</td><td>We are also not making any change in <i>res/values/strings.xml</i> file, it will also remain as shown above.</td></tr>
<tr><td>5</td><td>Run the application to launch Android emulator and verify the result of the changes done in the aplication.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.eventdemo/MainActivity.java</b>. This file can include each of the fundamental lifecycle methods.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">eventdemo</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">Button</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">TextView</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//--- Implement the event handler for the first button.</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> doSmall</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// --- find the text view --</span><span class="pln">
</span><span class="typ">TextView</span><span class="pln"> txtView </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TextView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">text_id</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- change text size --</span><span class="pln">
txtView</span><span class="pun">.</span><span class="pln">setTextSize</span><span class="pun">(</span><span class="lit">14</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">//--- Implement the event handler for the second button.</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> doLarge</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="com">// --- find the text view --</span><span class="pln">
</span><span class="typ">TextView</span><span class="pln"> txtView </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">TextView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">text_id</span><span class="pun">);</span><span class="pln">
</span><span class="com">// -- change text size --</span><span class="pln">
txtView</span><span class="pun">.</span><span class="pln">setTextSize</span><span class="pun">(</span><span class="lit">24</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following will be the content of <b>res/layout/activity_main.xml</b> file. Here we have to add <b>android:onClick="methodName"</b> for both the buttons, which will register given method names as click event handlers.<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><LinearLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button_s"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/button_small"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"doSmall"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><Button</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/button_l"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/button_large"</span><span class="pln">
</span><span class="atn">android:onClick</span><span class="pun">=</span><span class="atv">"doLarge"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/text_id"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:capitalize</span><span class="pun">=</span><span class="atv">"characters"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></LinearLayout></span></pre>
Again let's try to run your <b>EventDemo</b> application. I assume you had created your <b>AVD</b> while doing environment setup. To run the app from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Eclipse installs the app on your AVD and starts
it and if everything is fine with your setup and application, it will
display following Emulator window:<br />
<img alt="Android Event Handling" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_event_handling.jpg" />
Now you try to click on two buttons one by one and you will see that font of the <b>Hello World</b> text will change, which happens because registered click event handler method is being called against each click event.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-88879994424949491362015-05-23T11:40:00.001-07:002015-05-23T11:59:39.873-07:00Android Drag and DropAndroid drag/drop framework allows your users to move data from one
View to another View in the current layout using a graphical drag and
drop gesture. The framework includes following three important
components to support drag & drop functionality:<br />
<ul class="list">
<li><b>Drag event class:</b></li>
<li><b>Drag listeners:</b> </li>
<li><b>Helper methods and classes:</b></li>
</ul>
<h2>
The Drag/Drop Process</h2>
There are basically four steps or states in the drag and drop process:<br />
<ul class="list">
<li><b>Started:</b> This event occurs when you start dragging an item in a layout, your application calls <i>startDrag()</i>
method to tell the system to start a drag. The arguments inside
startDrag() method provide the data to be dragged, metadata for this
data, and a callback for drawing the drag shadow.<br />
The system first responds by calling back to your application to get a
drag shadow. It then displays the drag shadow on the device.<br />
Next, the system sends a drag event with action type <i>ACTION_DRAG_STARTED</i> to the registered drag event listeners for all the View objects in the current layout.<br />
To continue to receive drag events, including a possible drop event, a drag event listener must return <b>true</b>,
If the drag event listener returns false, then it will not receive drag
events for the current operation until the system sends a drag event
with action type ACTION_DRAG_ENDED.</li>
<li><b>Continuing:</b> The user continues the drag. System sends
ACTION_DRAG_ENTERED action followed by ACTION_DRAG_LOCATION action to
the registered drag event listener for the View where dragging point
enters. The listener may choose to alter its View object's appearance in
response to the event or can react by highlighting its View.<br />
The drag event listener receives a ACTION_DRAG_EXITED action after
the user has moved the drag shadow outside the bounding box of the View.</li>
<li><b>Dropped:</b> The user releases the dragged item within the
bounding box of a View. The system sends the View object's listener a
drag event with action type ACTION_DROP.</li>
<li><b>Ended:</b> Just after the action type ACTION_DROP, the system
sends out a drag event with action type ACTION_DRAG_ENDED to indicate
that the drag operation is over.</li>
</ul>
<h2>
The DragEvent Class</h2>
The <b>DragEvent</b> represents an event that is sent out by the
system at various times during a drag and drop operation. This class
provides few Constants and important methods which we use during
Drag/Drop process.<br />
<h3>
Constants</h3>
Following are all constants integers available as a part of DragEvent class.<br />
<table class="src">
<tbody>
<tr><th>S.N.</th><th>Constants & Description</th></tr>
<tr><td>1</td><td><b>ACTION_DRAG_STARTED</b> <br />
Signals the start of a drag and drop operation.</td></tr>
<tr><td>2</td><td><b>ACTION_DRAG_ENTERED</b> <br />
Signals to a View that the drag point has entered the bounding box of the View.</td></tr>
<tr><td>3</td><td><b>ACTION_DRAG_LOCATION</b> <br />
Sent to a View after ACTION_DRAG_ENTERED if the drag shadow is still within the View object's bounding box.</td></tr>
<tr><td>4</td><td><b>ACTION_DRAG_EXITED</b> <br />
Signals that the user has moved the drag shadow outside the bounding box of the View.</td></tr>
<tr><td>5</td><td><b>ACTION_DROP</b> <br />
Signals to a View that the user has released the drag shadow, and the drag point is within the bounding box of the View.</td></tr>
<tr><td>6</td><td><b>ACTION_DRAG_ENDED</b> <br />
Signals to a View that the drag and drop operation has concluded.</td></tr>
</tbody></table>
<h3>
Methods</h3>
Following are few important and most frequently used methods available as a part of DragEvent class.<br />
<table class="src">
<tbody>
<tr><th>S.N.</th><th>Constants & Description</th></tr>
<tr><td>1</td><td><b>int getAction()</b> <br />
Inspect the action value of this event..</td></tr>
<tr><td>2</td><td><b>ClipData getClipData()</b> <br />
Returns the ClipData object sent to the system as part of the call to startDrag().</td></tr>
<tr><td>3</td><td><b>ClipDescription getClipDescription()</b> <br />
Returns the ClipDescription object contained in the ClipData.</td></tr>
<tr><td>4</td><td><b>boolean getResult()</b> <br />
Returns an indication of the result of the drag and drop operation.</td></tr>
<tr><td>5</td><td><b>float getX()</b> <br />
Gets the X coordinate of the drag point.</td></tr>
<tr><td>6</td><td><b>float getY()</b> <br />
Gets the Y coordinate of the drag point.</td></tr>
<tr><td>7</td><td><b>String toString()</b> <br />
Returns a string representation of this DragEvent object.</td></tr>
</tbody></table>
<h2>
Listening for Drag Event</h2>
If you want any of your views within a Layout should respond Drag event then your view either implements <b>View.OnDragListener</b> or setup <b>onDragEvent(DragEvent)</b>
callback method. When the system calls the method or listener, it
passes to them a DragEvent object explained above. You can have both a
listener and a callback method for View object. If this occurs, the
system first calls the listener and then defined callback as long as
listener returns true.<br />
The combination of the <i>onDragEvent(DragEvent)</i> method and <i>View.OnDragListener</i> is analogous to the combination of the <b>onTouchEvent()</b> and <b>View.OnTouchListener</b> used with touch events in old versions of Android.<br />
<h2>
Starting a Drag Event</h2>
You start with creating a <b>ClipData</b> and <b>ClipData.Item</b> for the data being moved. As part of the <i>ClipData</i> object, supply metadata that is stored in a <b>ClipDescription</b> object within the ClipData. For a drag and drop operation that does not represent data movement, you may want to use <b>null</b> instead of an actual object.<br />
Next either you can extend extend <b>View.DragShadowBuilder</b> to create a drag shadow for dragging the view or simply you can use <i>View.DragShadowBuilder(View)</i>
to create a default drag shadow that's the same size as the View
argument passed to it, with the touch point centered in the drag shadow.<br />
<h2>
Example</h2>
Following example shows the functionality of a simple Drag & Drop using a <b>View.setOnLongClickListener()</b> event listener along with <b>View.OnDragEventListener()</b>.<br />
<table class="src">
<tbody>
<tr><th class="fivepct">Step</th><th>Description</th></tr>
<tr><td>1</td><td>You will use Eclipse IDE to create an Android application and name it as <i>DragNDropDemo</i> under a package <i>com.example.dragndropdemo</i>. While creating this project, make sure you <i>Target SDK</i> and <i>Compile With</i> at the latest version of Android SDK to use higher levels of APIs.</td></tr>
<tr><td>2</td><td>Modify <i>src/MainActivity.java</i> file and add the code to define event listeners as well as a call back methods for the logo image used in the example.</td></tr>
<tr><td>3</td><td>Copy image logo.png in <i>res/drawable-*</i> folders. You can use images with different resolution in case you want to provide them for different devices.</td></tr>
<tr><td>4</td><td>Modify layout XML file <i>res/layout/activity_main.xml</i> to define default view of the logo images.</td></tr>
<tr><td>5</td><td>Run the application to launch Android emulator and verify the result of the changes done in the aplication.</td></tr>
</tbody></table>
Following is the content of the modified main activity file <b>src/com.example.dragndropdemo/MainActivity.java</b>. This file can include each of the fundamental lifecycle methods.<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">dragndropdemo</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">ClipData</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">ClipDescription</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Log</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">DragEvent</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">.</span><span class="typ">DragShadowBuilder</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnDragListener</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.*;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pun">{</span><span class="pln">
</span><span class="typ">ImageView</span><span class="pln"> ima</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> IMAGEVIEW_TAG </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Android Logo"</span><span class="pun">;</span><span class="pln">
</span><span class="typ">String</span><span class="pln"> msg</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">private</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">widget</span><span class="pun">.</span><span class="typ">RelativeLayout</span><span class="pun">.</span><span class="typ">LayoutParams</span><span class="pln"> layoutParams</span><span class="pun">;</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
ima </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ImageView</span><span class="pun">)</span><span class="pln">findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">iv_logo</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Sets the tag</span><span class="pln">
ima</span><span class="pun">.</span><span class="pln">setTag</span><span class="pun">(</span><span class="pln">IMAGEVIEW_TAG</span><span class="pun">);</span><span class="pln">
ima</span><span class="pun">.</span><span class="pln">setOnLongClickListener</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">View</span><span class="pun">.</span><span class="typ">OnLongClickListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onLongClick</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">ClipData</span><span class="pun">.</span><span class="typ">Item</span><span class="pln"> item </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ClipData</span><span class="pun">.</span><span class="typ">Item</span><span class="pun">((</span><span class="typ">CharSequence</span><span class="pun">)</span><span class="pln">v</span><span class="pun">.</span><span class="pln">getTag</span><span class="pun">());</span><span class="pln">
</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> mimeTypes </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="typ">ClipDescription</span><span class="pun">.</span><span class="pln">MIMETYPE_TEXT_PLAIN</span><span class="pun">};</span><span class="pln">
</span><span class="typ">ClipData</span><span class="pln"> dragData </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ClipData</span><span class="pun">(</span><span class="pln">v</span><span class="pun">.</span><span class="pln">getTag</span><span class="pun">().</span><span class="pln">toString</span><span class="pun">(),</span><span class="pln">
mimeTypes</span><span class="pun">,</span><span class="pln"> item</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Instantiates the drag shadow builder.</span><span class="pln">
</span><span class="typ">View</span><span class="pun">.</span><span class="typ">DragShadowBuilder</span><span class="pln"> myShadow </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DragShadowBuilder</span><span class="pun">(</span><span class="pln">ima</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Starts the drag</span><span class="pln">
v</span><span class="pun">.</span><span class="pln">startDrag</span><span class="pun">(</span><span class="pln">dragData</span><span class="pun">,</span><span class="pln"> </span><span class="com">// the data to be dragged</span><span class="pln">
myShadow</span><span class="pun">,</span><span class="pln"> </span><span class="com">// the drag shadow builder</span><span class="pln">
</span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="com">// no need to use local data</span><span class="pln">
</span><span class="lit">0</span><span class="pln"> </span><span class="com">// flags (not currently used, set to 0)</span><span class="pln">
</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="com">// Create and set the drag event listener for the View</span><span class="pln">
ima</span><span class="pun">.</span><span class="pln">setOnDragListener</span><span class="pun">(</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">OnDragListener</span><span class="pun">(){</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onDrag</span><span class="pun">(</span><span class="typ">View</span><span class="pln"> v</span><span class="pun">,</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">){</span><span class="pln">
</span><span class="kwd">switch</span><span class="pun">(</span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getAction</span><span class="pun">())</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pun">.</span><span class="pln">ACTION_DRAG_STARTED</span><span class="pun">:</span><span class="pln">
layoutParams </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">RelativeLayout</span><span class="pun">.</span><span class="typ">LayoutParams</span><span class="pun">)</span><span class="pln">
v</span><span class="pun">.</span><span class="pln">getLayoutParams</span><span class="pun">();</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">d</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Action is DragEvent.ACTION_DRAG_STARTED"</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Do nothing</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pun">.</span><span class="pln">ACTION_DRAG_ENTERED</span><span class="pun">:</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">d</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Action is DragEvent.ACTION_DRAG_ENTERED"</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> x_cord </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getX</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> y_cord </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getY</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pun">.</span><span class="pln">ACTION_DRAG_EXITED </span><span class="pun">:</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">d</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Action is DragEvent.ACTION_DRAG_EXITED"</span><span class="pun">);</span><span class="pln">
x_cord </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getX</span><span class="pun">();</span><span class="pln">
y_cord </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getY</span><span class="pun">();</span><span class="pln">
layoutParams</span><span class="pun">.</span><span class="pln">leftMargin </span><span class="pun">=</span><span class="pln"> x_cord</span><span class="pun">;</span><span class="pln">
layoutParams</span><span class="pun">.</span><span class="pln">topMargin </span><span class="pun">=</span><span class="pln"> y_cord</span><span class="pun">;</span><span class="pln">
v</span><span class="pun">.</span><span class="pln">setLayoutParams</span><span class="pun">(</span><span class="pln">layoutParams</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pun">.</span><span class="pln">ACTION_DRAG_LOCATION </span><span class="pun">:</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">d</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Action is DragEvent.ACTION_DRAG_LOCATION"</span><span class="pun">);</span><span class="pln">
x_cord </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getX</span><span class="pun">();</span><span class="pln">
y_cord </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">event</span><span class="pun">.</span><span class="pln">getY</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pun">.</span><span class="pln">ACTION_DRAG_ENDED </span><span class="pun">:</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">d</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Action is DragEvent.ACTION_DRAG_ENDED"</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Do nothing</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">case</span><span class="pln"> </span><span class="typ">DragEvent</span><span class="pun">.</span><span class="pln">ACTION_DROP</span><span class="pun">:</span><span class="pln">
</span><span class="typ">Log</span><span class="pun">.</span><span class="pln">d</span><span class="pun">(</span><span class="pln">msg</span><span class="pun">,</span><span class="pln"> </span><span class="str">"ACTION_DROP event"</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Do nothing</span><span class="pln">
</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">default</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Following will be the content of <b>res/layout/activity_main.xml</b> file:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/container"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"fill_parent"</span><span class="pln">
</span><span class="atn">android:orientation</span><span class="pun">=</span><span class="atv">"vertical"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><ImageView</span><span class="pln">
</span><span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/iv_logo"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:src</span><span class="pun">=</span><span class="atv">"@drawable/logo"</span><span class="pln">
</span><span class="atn">android:contentDescription</span><span class="pun">=</span><span class="atv">"@string/drag_drop"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
Following will be the content of <b>res/values/strings.xml</b> to define two new constants:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">DragNDropDemo</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"action_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"drag_drop"</span><span class="tag">></span><span class="pln">Click on the image to drag and drop</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
Following is the default content of <b>AndroidManifest.xml</b>:<br />
<pre class="prettyprint prettyprinted"><span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln">
</span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.guidemo"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"16"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"17"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.example.guidemo.MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Let's try to run your <b>DragNDropDemo</b> application. I assume you had created your <b>AVD</b> while doing environment setup. To run the app from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Eclipse installs the app on your AVD and starts
it and if everything is fine with your setup and application, it will
display following Emulator window:<br />
<img alt="Android Drag and Drop" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/android_drag_and_drop.jpg" />
Now do long click on the displayed android logo and you will see that
logo image moves a little after 1 seconds long click from its place,
its the time when you should start dragging the image. You can drag it
around the screen and drop it at a new location.<br />
<img alt="Android Drop to New Location" src="http://1.1.1.4/bmi/www.tutorialspoint.com/android/images/android_drag_and_drop2.jpg" />ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-61216516450965713112015-05-23T11:38:00.002-07:002015-05-23T11:59:53.381-07:00Android Hello World ExampleLet us start actual programming with Android Framework. Before you
start writing your first example using Android SDK, you have to make
sure that you have setup your Android development environment properly
as explained in Android - Environment Setup tutorial. I also assume that you have a little bit working knowledge with Eclipse IDE.<br />
So let us proceed to write a simple Android Application which will print "Hello World!".<br />
<h2>
Create Android Application</h2>
The first step is to create a simple Android Application using Eclipse IDE. Follow the option <b>File -> New -> Project</b> and finally select <b>Android New Application</b> wizard from the wizard list. Now name your application as <b>HelloWorld</b> using the wizard window as follows:<br />
<img alt="Hello Android Wizard" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/hello_android_wizard.jpg" />
Next, follow the instructions provided and keep all other entries as
default till the final step. Once your project is created successfully,
you will have following project screen:<br />
<img alt="Hello Android Project" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/hello_android_project.jpg" />
<br />
<h2>
Anatomy of Android Application</h2>
Before you run your app, you should be aware of a few directories and files in the Android project:<br />
<img alt="Android Directory Structure" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/android_dir_structure.jpg" />
<br />
<table class="src">
<tbody>
<tr><th class="fivepct">S.N.</th><th>Folder, File & Description</th></tr>
<tr><td>1</td><td><b>src</b><br />
This contains the <b>.java</b> source files for your project. By default, it includes an <i>MainActivity.java</i> source file having an activity class that runs when your app is launched using the app icon.</td></tr>
<tr><td>2</td><td><b>gen</b><br />
This contains the <b>.R</b> file, a compiler-generated file that references all the resources found in your project. You should not modify this file.</td></tr>
<tr><td>3</td><td><b>bin</b><br />
This folder contains the Android package files <b>.apk</b> built by the ADT during the build process and everything else needed to run an Android application.</td></tr>
<tr><td>4</td><td><b>res/drawable-hdpi</b><br />
This is a directory for drawable objects that are designed for high-density screens.</td></tr>
<tr><td>5</td><td><b>res/layout</b><br />
This is a directory for files that define your app's user interface.</td></tr>
<tr><td>6</td><td><b>res/values</b><br />
This is a directory for other various XML files that contain a collection of resources, such as strings and colors definitions.</td></tr>
<tr><td>7</td><td><b>AndroidManifest.xml</b><br />
This is the manifest file which describes the fundamental characteristics of the app and defines each of its components.</td></tr>
</tbody></table>
Following section will give a brief overview few of the important application files.<br />
<h2>
The Main Activity File</h2>
The main activity code is a Java file <b>MainActivity.java</b>. This
is the actual application file which ultimately gets converted to a
Dalvik executable and runs your application. Following is the default
code generated by the application wizard for <i>Hello World!</i> application:<br />
<pre class="prettyprint prettyprinted"><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">helloworld</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Bundle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">Activity</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">Menu</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">view</span><span class="pun">.</span><span class="typ">MenuItem</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v4</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NavUtils</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MainActivity</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Activity</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">(</span><span class="typ">Bundle</span><span class="pln"> savedInstanceState</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">(</span><span class="pln">savedInstanceState</span><span class="pun">);</span><span class="pln">
setContentView</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">layout</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="lit">@Override</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> onCreateOptionsMenu</span><span class="pun">(</span><span class="typ">Menu</span><span class="pln"> menu</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
getMenuInflater</span><span class="pun">().</span><span class="pln">inflate</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">menu</span><span class="pun">.</span><span class="pln">activity_main</span><span class="pun">,</span><span class="pln"> menu</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
Here, <i>R.layout.activity_main</i> refers to the <i>activity_main.xml</i> file located in the <i>res/layout</i> folder. The <i>onCreate()</i> method is one of many methods that are fi red when an activity is loaded.<br />
<h2>
The Manifest File</h2>
Whatever component you develop as a part of your application, you must declare all its components in a <i>manifest</i> file called <b>AndroidManifest.xml</b>
which ressides at the root of the application project directory. This
file works as an interface between Android OS and your application, so
if you do not declare your component in this file, then it will not be
considered by the OS. For example, a default manifest file will look
like as following file:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.example.helloworld"</span><span class="pln">
</span><span class="atn">android:versionCode</span><span class="pun">=</span><span class="atv">"1"</span><span class="pln">
</span><span class="atn">android:versionName</span><span class="pun">=</span><span class="atv">"1.0"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><uses-sdk</span><span class="pln">
</span><span class="atn">android:minSdkVersion</span><span class="pun">=</span><span class="atv">"8"</span><span class="pln">
</span><span class="atn">android:targetSdkVersion</span><span class="pun">=</span><span class="atv">"15"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><application</span><span class="pln">
</span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@drawable/ic_launcher"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">
</span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><activity</span><span class="pln">
</span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln">
</span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/title_activity_main"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><intent-filter></span><span class="pln">
</span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="tag">/></span><span class="pln">
</span><span class="tag"></intent-filter></span><span class="pln">
</span><span class="tag"></activity></span><span class="pln">
</span><span class="tag"></application></span><span class="pln">
</span><span class="tag"></manifest></span></pre>
Here <application>...</application> tags enclosed the components related to the application. Attribute <i>android:icon</i> will point to the application icon available under <i>res/drawable-hdpi</i>. The application uses the image named ic_launcher.png located in the drawable folders<br />
The <activity> tag is used to specify an activity and <i>android:name</i> attribute specifies the fully qualified class name of the <i>Activity</i> subclass and the <i>android:label</i>
attributes specifies a string to use as the label for the activity. You
can specify multiple activities using <activity> tags.<br />
The <b>action</b> for the intent filter is named <i>android.intent.action.MAIN</i> to indicate that this activity serves as the entry point for the application. The <b>category</b> for the intent-filter is named <i>android.intent.category.LAUNCHER</i> to indicate that the application can be launched from the device's launcher icon.<br />
The <i>@string</i> refers to the <i>strings.xml</i> file explained below. Hence, <i>@string/app_name</i> refers to the <i>app_name</i> string defined in the strings.xml fi le, which is "HelloWorld". Similar way, other strings get populated in the application.<br />
Following is the list of tags which you will use in your manifest file to specify different Android application components:<br />
<ul class="list">
<li><activity>elements for activities</li>
<li><service> elements for services</li>
<li><receiver> elements for broadcast receivers</li>
<li><provider> elements for content providers</li>
</ul>
<h2>
The Strings File</h2>
The <b>strings.xml</b> file is located in the <i>res/values</i>
folder and it contains all the text that your application uses. For
example, the names of buttons, labels, default text, and similar types
of strings go into this file. This file is responsible for their textual
content. For example, a default strings file will look like as
following file:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><resources></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"app_name"</span><span class="tag">></span><span class="pln">HelloWorld</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"hello_world"</span><span class="tag">></span><span class="pln">Hello world!</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"menu_settings"</span><span class="tag">></span><span class="pln">Settings</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"><string</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"title_activity_main"</span><span class="tag">></span><span class="pln">MainActivity</span><span class="tag"></string></span><span class="pln">
</span><span class="tag"></resources></span></pre>
<h2>
The R File</h2>
The <b>gen/com.example.helloworld/R.java</b> file is the glue between the activity Java files like <i>MainActivity.java</i> and the resources like <i>strings.xml</i>.
It is an automatically generated file and you should not modify the
content of the R.java file. Following is a sample of R.java file:<br />
<pre class="prettyprint prettyprinted"><span class="com">/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/</span><span class="pln">
</span><span class="kwd">package</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">example</span><span class="pun">.</span><span class="pln">helloworld</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> R </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> attr </span><span class="pun">{</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> dimen </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> padding_large</span><span class="pun">=</span><span class="lit">0x7f040002</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> padding_medium</span><span class="pun">=</span><span class="lit">0x7f040001</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> padding_small</span><span class="pun">=</span><span class="lit">0x7f040000</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> drawable </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> ic_action_search</span><span class="pun">=</span><span class="lit">0x7f020000</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> ic_launcher</span><span class="pun">=</span><span class="lit">0x7f020001</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> id </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> menu_settings</span><span class="pun">=</span><span class="lit">0x7f080000</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> layout </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> activity_main</span><span class="pun">=</span><span class="lit">0x7f030000</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> menu </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> activity_main</span><span class="pun">=</span><span class="lit">0x7f070000</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="kwd">string</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> app_name</span><span class="pun">=</span><span class="lit">0x7f050000</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> hello_world</span><span class="pun">=</span><span class="lit">0x7f050001</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> menu_settings</span><span class="pun">=</span><span class="lit">0x7f050002</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> title_activity_main</span><span class="pun">=</span><span class="lit">0x7f050003</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> style </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> </span><span class="typ">AppTheme</span><span class="pun">=</span><span class="lit">0x7f060000</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>
<h2>
The Layout File</h2>
The <b>activity_main.xml</b> is a layout file available in <i>res/layout</i>
directory, that is referenced by your application when building its
interface. You will modify this file very frequently to change the
layout of your application. For your "Hello World!" application, this
file will have following content related to default layout:<br />
<pre class="prettyprint prettyprinted"><span class="tag"><RelativeLayout</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">
</span><span class="atn">xmlns:tools</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/tools"</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="pln"> </span><span class="tag">></span><span class="pln">
</span><span class="tag"><TextView</span><span class="pln">
</span><span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"wrap_content"</span><span class="pln">
</span><span class="atn">android:layout_centerHorizontal</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:layout_centerVertical</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">
</span><span class="atn">android:padding</span><span class="pun">=</span><span class="atv">"@dimen/padding_medium"</span><span class="pln">
</span><span class="atn">android:text</span><span class="pun">=</span><span class="atv">"@string/hello_world"</span><span class="pln">
</span><span class="atn">tools:context</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">
</span><span class="tag"></RelativeLayout></span></pre>
This is an example of simple <i>RelativeLayout</i> which we will study in a separate chapter. The <i>TextView</i> is an Android control used to build the GUI and it have various attribuites like <i>android:layout_width</i>, <i>android:layout_height</i> etc which are being used to set its width and height etc. The <i>@string</i>
refers to the strings.xml file located in the res/values folder. Hence,
@string/hello_world refers to the hello string defined in the
strings.xml fi le, which is "Hello World!".<br />
<h2>
Running the Application</h2>
Let's try to run our <b>Hello World!</b> application we just created. I assume you had created your <b>AVD</b> while doing environment setup. To run the app from Eclipse, open one of your project's activity files and click Run <img alt="Eclipse Run Icon" class="inline" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/eclipse_run.png" />
icon from the toolbar. Eclipse installs the app on your AVD and starts
it and if everything is fine with your setup and application, it will
display following Emulator window:<br />
<img alt="Android Hello World" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/android_hello_world.jpg" />
Congratulations!!! you have developed your first Android Application
and now just keep following rest of the tutorial step by step to become a
great Android Developer. All the very best.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-23371066579979164562015-05-23T11:34:00.004-07:002015-05-23T12:00:05.557-07:00Android Application ComponentsApplication components are the essential building blocks of an
Android application. These components are loosely coupled by the
application manifest file <i>AndroidManifest.xml</i> that describes each component of the application and how they interact.<br />
There are following four main components that can be used within an Android application:<br />
<table class="src">
<tbody>
<tr><th style="width: 25%;">Components</th><th>Description</th></tr>
<tr><td>Activities</td><td>They dictate the UI and handle the user interaction to the smartphone screen</td></tr>
<tr><td>Services</td><td>They handle background processing associated with an application.</td></tr>
<tr><td>Broadcast Receivers</td><td>They handle communication between Android OS and applications.</td></tr>
<tr><td>Content Providers</td><td>They handle data and database management issues.</td></tr>
</tbody></table>
<h2>
Activities</h2>
An activity represents a single screen with a user interface. For
example, an email application might have one activity that shows a list
of new emails, another activity to compose an email, and another
activity for reading emails. If an application has more than one
activity, then one of them should be marked as the activity that is
presented when the application is launched.<br />
An activity is implemented as a subclass of <b>Activity</b> class as follows:<br />
<pre class="prettyprint">public class MainActivity extends Activity {
}
</pre>
<h2>
Services</h2>
A service is a component that runs in the background to perform
long-running operations. For example, a service might play music in the
background while the user is in a different application, or it might
fetch data over the network without blocking user interaction with an
activity.<br />
A service is implemented as a subclass of <b>Service</b> class as follows:<br />
<pre class="prettyprint">public class MyService extends Service {
}
</pre>
<h2>
Broadcast Receivers</h2>
Broadcast Receivers simply respond to broadcast messages from other
applications or from the system. For example, applications can also
initiate broadcasts to let other applications know that some data has
been downloaded to the device and is available for them to use, so this
is broadcast receiver who will intercept this communication and will
initiate appropriate action.<br />
A broadcast receiver is implemented as a subclass of <b>BroadcastReceiver</b> class and each message is broadcasted as an <b>Intent</b> object.<br />
<pre class="prettyprint">public class MyReceiver extends BroadcastReceiver {
}
</pre>
<h2>
Content Providers</h2>
A content provider component supplies data from one application to
others on request. Such requests are handled by the methods of the <i>ContentResolver</i> class. The data may be stored in the file system, the database or somewhere else entirely.<br />
A content provider is implemented as a subclass of <b>ContentProvider</b> class and must implement a standard set of APIs that enable other applications to perform transactions.<br />
<pre class="prettyprint">public class MyContentProvider extends ContentProvider {
}
</pre>
We will go through these tags in detail while covering application components in individual chapters.<br />
<h2>
Additional Components</h2>
There are additional components which will be used in the
construction of above mentioned entities, their logic, and wiring
between them. These components are:<br />
<table class="src"><tbody>
<tr><th style="width: 25%;">Components</th><th>Description</th></tr>
<tr><td>Fragments</td><td>Represents a behavior or a portion of user interface in an Activity.</td></tr>
<tr><td>Views</td><td>UI elements that are drawn onscreen including buttons, lists forms etc.</td></tr>
<tr><td>Layouts</td><td>View hierarchies that control screen format and appearance of the views.</td></tr>
<tr><td>Intents</td><td>Messages wiring components together.</td></tr>
<tr><td>Resources</td><td>External elements, such as strings, constants and drawables pictures.</td></tr>
<tr><td>Manifest</td><td>Configuration file for the application.</td></tr>
</tbody></table>
ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-75247566375778638992015-05-23T11:34:00.001-07:002015-05-23T12:00:20.125-07:00Android ArchitectureAndroid operating system is a stack of software components which is
roughly divided into five sections and four main layers as shown below
in the architecture diagram.<br />
<img alt="Android Architecture" src="http://1.1.1.3/bmi/www.tutorialspoint.com/android/images/android_architecture.jpg" />
<br />
<h2>
Linux kernel</h2>
At the bottom of the layers is Linux - Linux 2.6 with approximately
115 patches. This provides basic system functionality like process
management, memory management, device management like camera, keypad,
display etc. Also, the kernel handles all the things that Linux is
really good at such as networking and a vast array of device drivers,
which take the pain out of interfacing to peripheral hardware.<br />
<h2>
Libraries</h2>
On top of Linux kernel there is a set of libraries including
open-source Web browser engine WebKit, well known library libc, SQLite
database which is a useful repository for storage and sharing of
application data, libraries to play and record audio and video, SSL
libraries responsible for Internet security etc.<br />
<h2>
Android Runtime</h2>
This is the third section of the architecture and available on the
second layer from the bottom. This section provides a key component
called <b>Dalvik Virtual Machine</b> which is a kind of Java Virtual Machine specially designed and optimized for Android.<br />
The Dalvik VM makes use of Linux core features like memory management
and multi-threading, which is intrinsic in the Java language. The
Dalvik VM enables every Android application to run in its own process,
with its own instance of the Dalvik virtual machine.<br />
The Android runtime also provides a set of core libraries which
enable Android application developers to write Android applications
using standard Java programming language.<br />
<h2>
Application Framework</h2>
The Application Framework layer provides many higher-level services
to applications in the form of Java classes. Application developers are
allowed to make use of these services in their applications.<br />
<h2>
Applications</h2>
You will find all the Android application at the top layer. You will
write your application to be installed on this layer only. Examples of
such applications are Contacts Books, Browser, Games etc.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-73396908819244756092015-05-23T11:33:00.000-07:002015-05-23T12:00:59.734-07:00Android Environment SetupYou will be glad to know that you can start your Android application development on either of the following operating systems:<br />
<ul class="list">
<li>Microsoft Windows XP or later version.</li>
<li>Mac OS X 10.5.8 or later version with Intel chip.</li>
<li>Linux including GNU C Library 2.7 or later.</li>
</ul>
Second point is that all the required tools to develop Android
applications are freely available and can be downloaded from the Web.
Following is the list of software's you will need before you start your
Android application programming.<br />
<ul class="list">
<li>Java JDK5 or JDK6</li>
<li>Android SDK</li>
<li>Eclipse IDE for Java Developers (optional)</li>
<li>Android Development Tools (ADT) Eclipse Plugin (optional)</li>
</ul>
Here last two components are optional and if you are working on
Windows machine then these components make your life easy while doing
Java based application development. So let us have a look how to proceed
to set required environment.<br />
<h2>
Step 1 - Setup Java Development Kit (JDK)</h2>
You can download the latest version of Java JDK from Oracle's Java site: <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" rel="nofollow" target="_blank">Java SE Downloads</a>.
You will find instructions for installing JDK in downloaded files,
follow the given instructions to install and configure the setup.
Finally set PATH and JAVA_HOME environment variables to refer to the
directory that contains <b>java</b> and <b>javac</b>, typically java_install_dir/bin and java_install_dir respectively.<br />
If you are running Windows and installed the JDK in C:\jdk1.6.0_15,
you would have to put the following line in your C:\autoexec.bat file.<br />
<pre class="prettyprint">set PATH=C:\jdk1.6.0_15\bin;%PATH%
set JAVA_HOME=C:\jdk1.6.0_15
</pre>
Alternatively, you could also right-click on <i>My Computer</i>, select <i>Properties</i>, then <i>Advanced</i>, then <i>Environment Variables</i>. Then, you would update the PATH value and press the OK button.<br />
On Linux, if the SDK is installed in /usr/local/jdk1.6.0_15 and you use the C shell, you would put the following code into your <b>.cshrc</b> file.<br />
<pre class="prettyprint">setenv PATH /usr/local/jdk1.6.0_15/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.6.0_15
</pre>
Alternatively, if you use an Integrated Development Environment (IDE)
Eclipse, then it will know automatically where you have installed your
Java.<br />
<h2>
Step 2 - Setup Android SDK</h2>
You can download the latest version of Android SDK from Android official website : <a href="http://developer.android.com/sdk/index.html" rel="nofollow" target="_blank">Android SDK Downloads</a>. If you are installing SDK on Windows machine, then you will find a <i>installer_rXX-windows.exe</i>, so just download and run this exe which will launch <i>Android SDK Tool Setup</i> wizard to guide you throughout of the installation, so just follow the instructions carefully. Finally you will have <i>Android SDK Tools</i> installed on your machine.<br />
If you are installing SDK either on Mac OS or Linux, check the instructions provided along with the downloaded <i>android-sdk_rXX-macosx.zip</i> file for Mac OS and <i>android-sdk_rXX-linux.tgz</i>
file for Linux. This tutorial will consider that you are going to setup
your environment on Windows machine having Windows 7 operating system.<br />
So let's launch <i>Android SDK Manager</i> using the option <b>All Programs > Android SDK Tools > SDK Manager</b>, this will give you following window:<br />
<img alt="Android SDK Manager" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/android_sdk_manager.jpg" />
Once you launched SDK manager, its time to install other required
packages. By default it will list down total 7 packages to be installed,
but I will suggest to de-select <i>Documentation for Android SDK</i> and <i>Samples for SDK</i> packages to reduce installation time. Next click <b>Install 7 Packages</b> button to proceed, which will display following dialogue box:<br />
<img alt="Android Installation" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/android_installation.jpg" />
If you agree to install all the packages, select <b>Accept All</b> radio button and proceed by clicking <b>Install</b>
button. Now let SDK manager do its work and you go, pick up a cup of
coffee and wait until all the packages are installed. It may take some
time depending on your internet connection. Once all the packages are
installed, you can close SDK manager using top-right cross button.<br />
<h2>
Step 3 - Setup Eclipse IDE</h2>
All the examples in this tutorial have been written using Eclipse
IDE. So I would suggest you should have latest version of Eclipse
installed on your machine.<br />
To install Eclipse IDE, download the latest Eclipse binaries from <a href="http://www.eclipse.org/downloads/" rel="nofollow" target="_blank">http://www.eclipse.org/downloads/</a>.
Once you downloaded the installation, unpack the binary distribution
into a convenient location. For example in C:\eclipse on windows, or
/usr/local/eclipse on Linux and finally set PATH variable appropriately.<br />
Eclipse can be started by executing the following commands on windows machine, or you can simply double click on eclipse.exe<br />
<pre class="prettyprint"> %C:\eclipse\eclipse.exe
</pre>
Eclipse can be started by executing the following commands on Linux machine:<br />
<pre class="prettyprint">$/usr/local/eclipse/eclipse
</pre>
After a successful startup, if everything is fine then it should display following result:<br />
<img alt="Eclipse Home page" src="http://1.1.1.5/bmi/www.tutorialspoint.com/images/EclipseHomePage.JPG" />
<br />
<h2>
Step 4 - Setup Android Development Tools (ADT) Plugin</h2>
This step will help you in setting Android Development Tool plugin
for Eclipse. Let's start with launching Eclipse and then, choose <b>Help > Software Updates > Install New Software</b>. This will display the following dialogue box.<br />
<img alt="Android Development Plug-in" src="http://1.1.1.5/bmi/www.tutorialspoint.com/android/images/android_development_plugin.jpg" />
Now use <b>Add</b> button to add <i>ADT Plugin</i> as name and <i>https://dl-ssl.google.com/android/eclipse/</i>
as the location. Then click OK to add this location, as soon as you
will click OK button to add this location, Eclipse starts searching for
the plug-in available the given location and finally lists down the
found plugins.<br />
<img alt="Android Development Plug-ins" src="http://1.1.1.2/bmi/www.tutorialspoint.com/android/images/android_development_plugins.jpg" />
Now select all the listed plug-ins using <b>Select All</b> button and click <b>Next</b> button which will guide you ahead to install Android Development Tools and other required plugins.<br />
<h2>
Step 5 - Create Android Virtual Device</h2>
To test your Android applications you will need a virtual Android
device. So before we start writing our code, let us create an Android
virtual device. Launch Android AVD Manager using Eclipse menu options <b>Window > AVD Manager></b> which will launch Android AVD Manager. Use <b>New</b> button to create a new Android Virtual Device and enter the following information, before clicking <b>Create AVD</b> button.<br />
<img alt="Android Virtual Device" src="http://1.1.1.1/bmi/www.tutorialspoint.com/android/images/android_virtual_device.jpg" />
If your AVD is created successfully it means your environment is
ready for Android application development. If you like, you can close
this window using top-right cross button. Better you re-start your
machine and once you are done with this last step, you are ready to
proceed for your first Android example but before that we will see few
more important concepts related to Android Application Development.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-75217931533019533142015-05-23T11:32:00.001-07:002015-05-23T12:01:12.526-07:00Android Applications<h2>
Android Applications</h2>
Android applications are usually developed in the Java language using the Android Software Development Kit.<br />
Once developed, Android applications can be packaged easily and sold out either through a store such as <b>Google Play</b> or the <b>Amazon Appstore</b>.<br />
Android powers hundreds of millions of mobile devices in more than
190 countries around the world. It's the largest installed base of any
mobile platform and growing fast. Every day more than 1 million new
Android devices are activated worldwide.<br />
This tutorial has been written with an aim to teach you how to
develop and package Android application. We will start from environment
setup for Android application programming and then drill down to look
into various aspects of Android applications.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-53022137042550463582015-05-23T11:30:00.002-07:002015-05-23T12:01:20.269-07:00Features of AndroidAndroid is a powerful operating system competing with Apple 4GS and supports great features. Few of them are listed below:<br />
<br />
<table class="src">
<tbody>
<tr><th style="width: 20%;">Feature</th><th>Description</th></tr>
</tbody></table>
<table class="src"><tbody>
<tr><th></th></tr>
<tr><td><ul>
<li>Beautiful UI</li>
</ul>
</td><td>Android OS basic screen provides a beautiful and intuitive user interface.</td></tr>
<tr><td><ul>
<li>Connectivity</li>
</ul>
</td><td>GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.</td></tr>
<tr><td><ul>
<li>Storage</li>
</ul>
</td><td>SQLite, a lightweight relational database, is used for data storage purposes.</td></tr>
<tr><td><ul>
<li>Media support</li>
</ul>
</td><td>H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP</td></tr>
<tr><td><ul>
<li>Messaging</li>
</ul>
</td><td>SMS and MMS</td></tr>
<tr><td><ul>
<li>Web browser</li>
</ul>
</td><td>Based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine supporting HTML5 and CSS3.</td></tr>
<tr><td><ul>
<li>Multi-touch</li>
</ul>
</td><td>Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero.</td></tr>
<tr><td><ul>
<li>Multi-tasking</li>
</ul>
</td><td>User can jump from one task to another and same time various application can run simultaneously.</td></tr>
<tr><td><ul>
<li>Resizable widgets</li>
</ul>
</td><td>Widgets are resizable, so users can expand them to show more content or shrink them to save space</td></tr>
<tr><td><ul>
<li>Multi-Language</li>
</ul>
</td><td>Supports single direction and bi-directional text.</td></tr>
<tr><td><ul>
<li>GCM</li>
</ul>
</td><td>Google Cloud Messaging (GCM) is a service that lets
developers send short message data to their users on Android devices,
without needing a proprietary sync solution.</td></tr>
<tr><td><ul>
<li>Wi-Fi Direct</li>
</ul>
</td><td>A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection.</td></tr>
<tr><td><ul>
<li>Android Beam</li>
</ul>
</td><td>A popular NFC-based technology that lets users instantly share, just by touching two NFC-enabled phones together.</td></tr>
</tbody></table>
<h2>
</h2>
ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-5009031285849619292015-05-23T11:27:00.002-07:002015-05-23T12:01:28.461-07:00What is Android? <br />
<h2>
What is Android?</h2>
Android is an open source and Linux-based <b>Operating System</b> for mobile devices such as smartphones and tablet computers. Android was developed by the <i>Open Handset Alliance</i>, led by Google, and other companies.<br />
Android offers a unified approach to application development for
mobile devices which means developers need only develop for Android, and
their applications should be able to run on different devices powered
by Android.<br />
The first beta version of the Android Software Development Kit (SDK)
was released by Google in 2007 where as the first commercial version,
Android 1.0, was released in September 2008.<br />
On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 <b>Jelly Bean</b>.
Jelly Bean is an incremental update, with the primary aim of improving
the user interface, both in terms of functionality and performance.<br />
The source code for Android is available under free and open source
software licenses. Google publishes most of the code under the Apache
License version 2.0 and the rest, Linux kernel changes, under the GNU
General Public License version 2.ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-70741980595229202332013-02-14T08:44:00.001-08:002013-02-14T08:46:37.475-08:00Getting started with NFC on Android<ul>
<li><b>nowledge needed</b>: Intermediate Android </li>
<li><b>Requires</b>: NFC-enabled Android phone</li>
<li><b>Project time</b>: 30 minutes</li>
<li class="link download-link"><a href="http://mos.netmagazine.com/site/files/tutorials/assets/2012/05/netmag-getting-started-with-nfc-on-android.zip">Download source files</a></li>
</ul>
<h2 class="strapline">
Near Field Communication (NFC) enables wireless communication
between things like phones, stickers and cards. In this tutorial Richard
Leggett shows us how to write a game demo that both reads and writes
custom data to an NFC tag </h2>
<div class="copy">
NFC or “Near Field Communication” is a technology that
allows wireless close-proximity data communication between things like
phones, stickers and cards. If you’re familiar with Barclays PayWave or
the Oyster Card, you’ll know that the technology this is built on,
“RFID”, allows data to be read by simply touching things together. You
might touch a phone against stickers, posters and with NFC, other
phones. This action can be used to launch a website or an app, make a
payment or even transfer data in both directions (on Android the latter
is called <i>Beam</i>). When compared to QR codes, NFC provides a far
simpler (and built-in) mechanism for opening URLs, downloading apps, or
even reading and writing custom content.<br />
<br />
<br />
<br />
<nav id="top-menu">
<ul class="top-nav">
<li class="menu-5263 first last"><a href="http://m.netmagazine.com/redirect/mobile" title="Use the mobile site">Mobile</a></li>
</ul>
</nav>
<header>
<div class="main-image">
<img alt="Getting started with NFC on Android" class="imagecache imagecache-featured_main" src="http://media.netmagazine.futurecdn.net/files/imagecache/featured_main/articles/tutorial/2012/05/lead-image.jpg" height="325" title="Getting started with NFC on Android" width="595" /> <br />
<h1 class="title">
Getting started with
NFC on Android</h1>
</div>
<div class="submitted">
By <span class="author-name">Richard Leggett</span> on <time datetime="2012-05-11T10:00:00+00:00">May 11, 2012</time> | <span class="comment-count"><a href="http://www.netmagazine.com/tutorials/getting-started-nfc-android#comments">6 comments</a></span> <br />
<b></b></div>
<div class="submitted">
<ul>
<li><b>Knowledge needed</b>: Intermediate Android </li>
</ul>
</div>
</header><div class="tutorial-details">
<ul>
<li><b>Requires</b>: NFC-enabled Android phone</li>
<li><b>Project time</b>: 30 minutes</li>
<li class="link download-link"><a href="http://mos.netmagazine.com/site/files/tutorials/assets/2012/05/netmag-getting-started-with-nfc-on-android.zip">Download source files</a></li>
</ul>
</div>
<h2 class="strapline">
Near Field Communication (NFC) enables wireless communication
between things like phones, stickers and cards. In this tutorial Richard
Leggett shows us how to write a game demo that both reads and writes
custom data to an NFC tag </h2>
NFC or “Near Field Communication” is a technology that
allows wireless close-proximity data communication between things like
phones, stickers and cards. If you’re familiar with Barclays PayWave or
the Oyster Card, you’ll know that the technology this is built on,
“RFID”, allows data to be read by simply touching things together. You
might touch a phone against stickers, posters and with NFC, other
phones. This action can be used to launch a website or an app, make a
payment or even transfer data in both directions (on Android the latter
is called <i>Beam</i>). When compared to QR codes, NFC provides a far
simpler (and built-in) mechanism for opening URLs, downloading apps, or
even reading and writing custom content.<br />
<h4 class="advert_mpu_body_hdr">
Advertisement</h4>
In this tutorial we’re going to build an app that writes to NFC tags,
and also reads Top Trumps-like data from them for a retro console game.
If a user without our app touches the tag, it’ll use a built in
mechanism to take them to the download page for the app in the Android
Play Store. Once installed any subsequent taps will launch the app and
show the game card on screen. All in less than 200 lines of code!<br />
In order to follow along you will need an NFC enabled Android phone
such as the Samsung Galaxy Nexus or Samsung Nexus S. The other thing you
will need is a few NFC tags or stickers. You can find these many places
online but <a href="http://rapidnfc.com/">RapidNFC</a> offer a great
starter pack, which includes a variety of re-writable tags and the
website also includes a good amount of info around the different tag
types. Be sure to order them pre-formatted (this appears as an option <i>after </i>payment), a <a href="http://rapidnfc.com/blog/14/android_ice_cream_sandwich_nfc_ndef_format_bug">bug</a> in Android 4.0.2 may prevent you encoding completely blank tags.<br />
Before we start writing our own code I’d also recommend downloading <a href="http://play.google.com/store/apps/details?id=com.nxp.nfc.tagwriter">NXP TagWriter</a> to get you familiar with reading and writing your tags.<br />
Along with reading and writing text and URLs you can enable
“professional mode” for free in the app’s preferences screen (accessible
via the menu button). Once enabled this gives you the ability to
format/erase and write-protect tags.<br />
<br />
<figure class="captioned-image" style="width: 635px;"><img alt="" src="http://media.netmagazine.futurecdn.net/files/images/2012/5/phone-shots.jpg" style="height: 400px; width: 615px;" /></figure>
<br />
<h2>
Getting started</h2>
Now onto our app… The first job is to write some data to a blank tag.
We’re going to be including a special record which links to the app
download page, and the game data itself in NDEF (NFC Data Exchange
Format).<br />
I recommend you open up the source code at this point, as I will be
highlighting the key parts on this page. When you have the project
imported, open up <b>AndroidManifest.xml</b> in the XML view.<br />
Before we can make use of NFC we need to add a few new tags to our manifest XML:<br />
<div class="geshifilter">
<ul class="src-btn-list" id="src-btn-list-container-0">
<li class="view-code" id="view-code-0">View source</li>
<li class="copy-code" id="copy-code-0">Copy code</li>
</ul>
<div class="xml geshifilter-xml">
<ol>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><uses-permission</span> <span class="re0">android:name</span>=<span class="st0">"android.permission.NFC"</span> <span class="re2">/></span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><uses-feature</span> <span class="re0">android:name</span>=<span class="st0">"android.hardware.nfc"</span> <span class="re0">android:required</span>=<span class="st0">"true"</span> <span class="re2">/></span></span></div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><activity</span> <span class="re0">android:name</span>=<span class="st0">".CardActivity"</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re2">></span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><intent-filter<span class="re2">></span></span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><action</span> <span class="re0">android:name</span>=<span class="st0">"android.nfc.action.NDEF_DISCOVERED"</span><span class="re2">/></span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><data</span> <span class="re0">android:mimeType</span>=<span class="st0">"application/vnd.netmagazine.nfcdemo"</span><span class="re2">/></span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"><category</span> <span class="re0">android:name</span>=<span class="st0">"android.intent.category.DEFAULT"</span><span class="re2">/></span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"></intent-filter<span class="re2">></span></span></span> </div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="re1"></activity<span class="re2">></span></span></span></div>
</li>
</ol>
</div>
</div>
The <b>uses-permission</b> tag will allow us to access the NFC chip in the phone, and the <b>uses-hardware</b> tag will make it a requirement, which will mean our app only appears to NFC enabled phones in the Play Store. For our <b>CardActivity</b> tag we add a new <b>intent-filter</b>, this will launch the activity when a tag is scanned that contains data in our game format. We do this by specifying a custom <b>mime-type</b>, in this case I’ve chosen “<b>application/vnd.netmagazine.nfcdemo</b>”.
Android handles NFC tag scans by trying to find the best match for the
data on the tag, providing several fallback mechanisms to make sure the
tag is handled by the right app and allowing the user to pick from a
chooser dialog when there is no clear target.<br />
The first thing we need to do is write some data to a blank NFC tag, so open up <b>MainActivity.java</b>.
This activity is launched when the user clicks the app’s icon. It
displays a button that, when pressed, waits for a tag to write to.<br />
In our <b>onCreate()</b> we grab a reference to the NFC adapter for later use:<br />
<div class="geshifilter">
<ul class="src-btn-list" id="src-btn-list-container-1">
<li class="view-code" id="view-code-1">View source</li>
<li class="copy-code" id="copy-code-1">Copy code</li>
</ul>
<div class="xml geshifilter-xml">
<ol>
<li class="li1"><div class="de1">
mAdapter = NfcAdapter.getDefaultAdapter(this);</div>
</li>
</ol>
</div>
</div>
The <b>NfcAdapter</b> allows us to begin listening to tag
being scanned, before any other app gets a chance. This is called
“foreground dispatch”. When the user presses the button we call <b>enableWriteMode()</b> to begin this process:<br />
<div class="geshifilter">
<ul class="src-btn-list" id="src-btn-list-container-2">
<li class="view-code" id="view-code-2">View source</li>
<li class="copy-code" id="copy-code-2">Copy code</li>
</ul>
<div class="xml geshifilter-xml">
<ol>
<li class="li1"><div class="de1">
private void enableWriteMode() {</div>
</li>
<li class="li1"><div class="de1">
mInWriteMode = true;</div>
</li>
<li class="li1"><div class="de1">
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,</div>
</li>
<li class="li1"><div class="de1">
new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);</div>
</li>
<li class="li1"><div class="de1">
IntentFilter[] filters = new IntentFilter[] { tagDetected };</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
mAdapter.enableForegroundDispatch(this, pendingIntent, filters, null);</div>
</li>
<li class="li1"><div class="de1">
}</div>
</li>
</ol>
</div>
</div>
In this method we set up a <b>PendingIntent</b> to run when a tag gets scanned, in this case we simply want to the <b>Intent</b> to launch the current Activity when any tag gets scanned, so set up no special filters. When the system dispatches <b>ACTION_TAG_DISCOVERED</b>, this Activity will launch and <b>onNewIntent()</b> will get called with the tag details.<br />
<div class="geshifilter">
<ul class="src-btn-list" id="src-btn-list-container-3">
<li class="view-code" id="view-code-3">View source</li>
<li class="copy-code" id="copy-code-3">Copy code</li>
</ul>
<div class="xml geshifilter-xml">
<ol>
<li class="li1"><div class="de1">
public void onNewIntent(Intent intent) {</div>
</li>
<li class="li1"><div class="de1">
if(mInWriteMode) {</div>
</li>
<li class="li1"><div class="de1">
mInWriteMode = false;</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);</div>
</li>
<li class="li1"><div class="de1">
writeTag(tag);</div>
</li>
<li class="li1"><div class="de1">
}</div>
</li>
<li class="li1"><div class="de1">
}</div>
</li>
</ol>
</div>
</div>
In <b>onNewIntent()</b> we pull out the NFC Tag and begin writing to it in <b>writeTag()</b>. This is by far the largest method in our demo:<br />
<div class="geshifilter">
<ul class="src-btn-list" id="src-btn-list-container-4">
<li class="view-code" id="view-code-4">View source</li>
<li class="copy-code" id="copy-code-4">Copy code</li>
</ul>
<div class="xml geshifilter-xml">
<ol>
<li class="li1"><div class="de1">
private boolean writeTag(Tag tag) {</div>
</li>
<li class="li1"><div class="de1">
// record to launch Play Store if app is not installed</div>
</li>
<li class="li1"><div class="de1">
NdefRecord appRecord = NdefRecord.createApplicationRecord("com.netmagazine.nfcdemo");</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
// record that contains our custom "retro console" game data, using custom MIME_TYPE</div>
</li>
<li class="li1"><div class="de1">
byte[] payload = getRandomConsole().getBytes();</div>
</li>
<li class="li1"><div class="de1">
byte[] mimeBytes = MimeType.NFC_DEMO.getBytes(Charset.forName("US-ASCII"));</div>
</li>
<li class="li1"><div class="de1">
NdefRecord cardRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);</div>
</li>
<li class="li1"><div class="de1">
NdefMessage message = new NdefMessage(new NdefRecord[] { cardRecord, appRecord});</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
try {</div>
</li>
<li class="li1"><div class="de1">
// see if tag is already NDEF formatted</div>
</li>
<li class="li1"><div class="de1">
Ndef ndef = Ndef.get(tag);</div>
</li>
<li class="li1"><div class="de1">
if (ndef != null) {</div>
</li>
<li class="li1"><div class="de1">
ndef.connect();</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
if (!ndef.isWritable()) {</div>
</li>
<li class="li1"><div class="de1">
displayMessage("Read-only tag.");</div>
</li>
<li class="li1"><div class="de1">
return false;</div>
</li>
<li class="li1"><div class="de1">
}</div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
// work out how much space we need for the data</div>
</li>
<li class="li1"><div class="de1">
int size = message.toByteArray().length;</div>
</li>
<li class="li1"><div class="de1">
if (ndef.getMaxSize() <span class="sc3">< size<span class="br0">)</span> <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> displayMessage<span class="br0">(</span><span class="st0">"Tag doesn't have enough free space."</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> return false;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span></span></div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> ndef.writeNdefMessage<span class="br0">(</span>message<span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> displayMessage<span class="br0">(</span><span class="st0">"Tag written successfully."</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> return true;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span> else <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> // attempt to format tag</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> NdefFormatable format = NdefFormatable.get<span class="br0">(</span>tag<span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> if <span class="br0">(</span>format != null<span class="br0">)</span> <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> try <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> format.connect<span class="br0">(</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> format.format<span class="br0">(</span>message<span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> displayMessage<span class="br0">(</span><span class="st0">"Tag written successfully!"</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> return true;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span> catch <span class="br0">(</span>IOException e<span class="br0">)</span> <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> displayMessage<span class="br0">(</span><span class="st0">"Unable to format tag to NDEF."</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> return false;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span> else <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> displayMessage<span class="br0">(</span><span class="st0">"Tag doesn't appear to support NDEF format."</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> return false;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span> catch <span class="br0">(</span>Exception e<span class="br0">)</span> <span class="br0">{</span></span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> displayMessage<span class="br0">(</span><span class="st0">"Failed to write tag"</span><span class="br0">)</span>;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"> <span class="br0">}</span></span></div>
</li>
<li class="li1"><div class="de1">
</div>
</li>
<li class="li1"><div class="de1">
<span class="sc3">return false;</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc3"><span class="br0">}</span></span></div>
</li>
</ol>
</div>
</div>
<h2>
NDEF</h2>
The data we store is organised into NDEF Records inside a single NDEF
Message. The first thing we do is create an “application record”, <b>appRecord</b>.
This is something new to Android 4, it forces the system to launch your
app before others if a matching package name is found in the NFC tag.
After that we create our <b>cardRecord</b> which contains a randomly generated game console. The <b>payload</b> is where we store our custom data, in this case simply a game console’s name in lower case.<br />
Next we determine whether the tag is already NDEF formatted by calling <b>Ndef.get(tag)</b>.
If it’s already NDEF formatted we check it’s writeable and that the
data is not too large. With all being well we write the data with <b>ndef.writeNdefMessage()</b>. If the tag was not already NDEF formatted we use <b>NdefFormattable.format()</b> to write the data at the same time as formatting the tag. That’s it, we’ve written an NFC tag!<br />
With the tag written hit the home button to exit the app and re-scan the tag. It should now launch the <b>CardActivity</b> and show the console’s game card. Open up <b>CardActivity.java</b> to see how we read the information from the <b>Intent</b>:<br />
<div class="geshifilter">
<ul class="src-btn-list" id="src-btn-list-container-5">
<li class="view-code" id="view-code-5">View source</li>
<li class="copy-code" id="copy-code-5">Copy code</li>
</ul>
<div class="xml geshifilter-xml">
<ol>
<li class="li1"><div class="de1">
Intent intent = getIntent();</div>
</li>
<li class="li1"><div class="de1">
if(intent.getType() != null <span class="sc1">&& intent.getType().equals(MimeType.NFC_DEMO)) {</span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc1"> Parcelable[] rawMsgs = </span></div>
</li>
<li class="li1"><div class="de1">
<span class="sc1">getIntent().getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);</span></div>
</li>
<li class="li1"><div class="de1">
NdefMessage msg = (NdefMessage) rawMsgs[0];</div>
</li>
<li class="li1"><div class="de1">
NdefRecord cardRecord = msg.getRecords()[0];</div>
</li>
<li class="li1"><div class="de1">
String consoleName = new String(cardRecord.getPayload());</div>
</li>
<li class="li1"><div class="de1">
displayCard(consoleName);</div>
</li>
<li class="li1"><div class="de1">
}</div>
</li>
</ol>
</div>
</div>
Here we are simply checking the <b>Intent</b> to make sure the type matches our custom mime-type. With that determined we can go ahead and grab the <b>NdefMessage</b> from the Intent’s extras. In our case we know the first <b>NdefRecord</b> is our <b>cardRecord</b>, containing our console name in the payload. With the console name known we simply show the correct image in an ImageView.<br />
In very little time we’ve managed to write custom data to an NFC tag,
automatically download an app to read it and read back that custom game
data. From here you could expand the demo to become a fully playable
game and even use <b>Android Beam</b>’s<i> </i>phone to phone NFC to make it multiplayer.</div>
ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-62217923202050153652012-09-12T06:14:00.000-07:002012-09-12T06:14:10.253-07:00How to connect and access SQL Database server fr<div style="background-color: white; color: #494949; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; margin-bottom: 1.2em; margin-top: 0.6em; padding: 0px;">
Recently I have tried to connect to SQL Database server which is in my local network machine. I can connect and access SQL server from my Android app. I did it in the following way….</div>
<div style="background-color: white; color: #494949; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; margin-bottom: 1.2em; margin-top: 0.6em; padding: 0px;">
1. First of all you need a JDBC driver library for SQL Server. As we know android library has only SQLite database driver. So first download an open source JDBC driver from this <a href="http://jtds.sourceforge.net/" style="color: #027ac6; text-decoration: none;">http://jtds.sourceforge.net</a>/ site (I downloaded the Linux version).</div>
<div style="background-color: white; color: #494949; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; margin-bottom: 1.2em; margin-top: 0.6em; padding: 0px;">
2. Then import the jar file into your Android app.(jtds-1.2.5.jar).</div>
<div style="background-color: white; color: #494949; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; margin-bottom: 1.2em; margin-top: 0.6em; padding: 0px;">
3. Now just try this code by modifying according to your context</div>
<div class="syntaxhighlighter " id="highlighter_40273" style="background-color: rgb(255, 255, 255) !important; background-image: none !important; border: 1px solid rgb(224, 224, 224) !important; bottom: auto !important; color: #494949; direction: ltr !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 1em 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: relative !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 684px;">
<div class="lines" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">01</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">import</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">java.sql.Connection;</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">02</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">import</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">java.sql.DriverManager;</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">03</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">import</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">java.sql.ResultSet;</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">04</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">import</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">java.sql.Statement;</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">05</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">06</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">import</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">net.sourceforge.jtds.jdbc.*;</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">07</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">08</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">public</code> <code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">void</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">query2()</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">09</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">{</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">10</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Log.i(</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"Android"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">,</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">" MySQL Connect Example."</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">);</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">11</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Connection conn = </code><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">null</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">;</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">12</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">try</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">{</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">13</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">String driver = </code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"net.sourceforge.jtds.jdbc.Driver"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">;</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">14</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Class.forName(driver).newInstance();</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">15</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="comments" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">//test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">16</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">String connString = </code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"jdbc:jtds:<a href="sqlserver://server_ip_address" style="color: blue !important; text-decoration: none;">sqlserver://server_ip_address</a>:1433/DBNAME;encrypt=fasle;user=xxxxxxxxx;</code><br />
<code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"> password=xxxxxxxx;instance=SQLEXPRESS;"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">;</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">17</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">String username = </code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"xxxxxx"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">;</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">18</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">String password = </code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"xxxxxxxxxx"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">;</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">19</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">conn = DriverManager.getConnection(connString,username,password);</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">20</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Log.w(</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"Connection"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">,</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"open"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">);</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">21</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Statement stmt = conn.createStatement();</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">22</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">ResultSet reset = stmt.executeQuery(</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"select * from TableName"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">);</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">23</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">24</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="comments" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">//Print the data to the console</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">25</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">while</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">(reset.next()){</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">26</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Log.w(</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"Data:"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">,reset.getString(</code><code class="value" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 153, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">3</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">));</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">27</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="comments" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 130, 0) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">// Log.w("Data",reset.getString(2));</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">28</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">}</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">29</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">conn.close();</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">30</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">31</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">} </code><code class="keyword" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">catch</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">(Exception e)</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">32</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">{</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">33</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">Log.w(</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">"Error connection"</code><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">,</code><code class="string" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: blue !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">""</code> <code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">+ e.getMessage());</code></td></tr>
</tbody></table>
</div>
<div class="line alt2" style="background-color: rgb(248, 248, 248) !important; background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">34</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">}</code></td></tr>
</tbody></table>
</div>
<div class="line alt1" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<table style="background-image: none !important; border-collapse: collapse !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; font-size: 11px !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-align: left !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><tbody style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">
<tr style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><td class="number" style="background-image: none !important; border: 0px !important; bottom: auto !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: 3em !important;"><code style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: block !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0.3em 0px 0px !important; position: static !important; right: auto !important; text-align: right !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: 2.7em !important;">35</code></td><td class="content" style="background-image: none !important; border-left-color: rgb(204, 204, 204) !important; border-left-style: solid !important; border-width: 0px 0px 0px 3px !important; bottom: auto !important; direction: ltr !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px 0px 0px 0.5em !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: top !important; width: auto !important;"><code class="plain" style="background-image: none !important; border: 0px !important; bottom: auto !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; line-height: 1.3em !important; margin: 0px !important; min-height: inherit !important; outline: 0px !important; padding: 0px !important; position: static !important; right: auto !important; text-shadow: none !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">}</code></td></tr>
</tbody></table>
</div>
</div>
</div>
<br />
<ul>
<li>Tag:<a href="http://learninformatique.blogspot.com/">Mobile,programming,guids,database,sql sever,mysql</a></li>
</ul>
ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com4tag:blogger.com,1999:blog-6986428656995103496.post-76448962995613993022012-07-29T07:00:00.001-07:002012-07-29T10:14:23.604-07:00TabHost example<img alt="Default" border="0" class="inlineimg" src="http://www.basic4ppc.com/forum/images/icons/icon1.gif" style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 11px; text-align: left; vertical-align: middle;" title="Default" /><span style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 11px; text-align: left;"> </span><strong style="background-color: white; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 11px; text-align: left;">TabHost example</strong><br />
<hr size="1" style="color: #d1d1e1; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" />
<div id="post_message_98413" style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">
In this example we will create one layout with a TabHost that fills the entire screen. Using a custom class which you can use in your own project we will add three tabs to the TabHost by loading additional three layout files.<br />
The class is included in the attached zip file.<br />
<br />
The first layout (MainLayout) consists of a single TabHost.<br />
Using the following script the TabHost is set to fill the entire available screen:<br />
<div style="margin: 5px 20px 20px;">
<div class="smallfont" style="font-size: 11px; margin-bottom: 2px;">
Code:</div>
<pre class="alt2" dir="ltr" style="background-color: white; border: 1px inset; height: 66px; overflow: auto; padding: 6px; width: 500px;"><span style="color: green;">'</span><span style="color: green;">All variants script</span><span style="color: green;">
</span>TabHost1.SetLeftAndRight(<span style="color: purple;">0</span>, <span style="color: purple;">100%x</span>)
TabHost1.SetTopAndBottom(<span style="color: purple;">0</span>, <span style="color: purple;">100%y</span>)</pre>
</div>
We also set the NativeClass property to: .ExtendedTabHost<br />
At runtime our class will be instantiated instead of the standard TabHost.<br />
<br />
The ExtendedTabHost includes a helper method named extendedAddTab which is useful for adding tabs.<br />
It expects 4 arguments:<br />
- Tab title<br />
- Default bitmap (for the title)<br />
- Selected bitmap (for the title)<br />
- The tab page view.<br />
<br />
<br />
<a name='more'></a><br /><br />
<br />
We will create 3 tabs based on three different layout files:<br />
<div style="margin: 5px 20px 20px;">
<div class="smallfont" style="font-size: 11px; margin-bottom: 2px;">
Code:</div>
<pre class="alt2" dir="ltr" style="background-color: white; border: 1px inset; height: 354px; overflow: auto; padding: 6px; width: 600px;"> @Override
<span style="color: blue;">public</span> void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Designer4android d4a = new Designer4android(<span style="color: maroon;">"</span><span style="color: maroon;">MainLayout</span><span style="color: maroon;">"</span>);
ViewGroup vg = d4a.loadLayout(this, this);
setContentView(vg);
}
<span style="color: blue;">public</span> void onLayoutLoaded(Designer4android d4a, <span style="color: darkcyan;">boolean</span> success, <span style="color: darkcyan;">Exception</span> e) {
<span style="color: blue;">if</span> (!success) {
<span style="color: blue;">Log</span>.e(<span style="color: maroon;">"</span><span style="color: maroon;">MyTag</span><span style="color: maroon;">"</span>, <span style="color: maroon;">"</span><span style="color: maroon;">Error loading layout file</span><span style="color: maroon;">"</span>, e);
finish(); //close the activity
<span style="color: blue;">return</span>;
}
ExtendedTabHost tabHost1 = (ExtendedTabHost)d4a.getView(<span style="color: maroon;">"</span><span style="color: maroon;">TabHost1</span><span style="color: maroon;">"</span>);
tabHost1.extendedAddTab(<span style="color: maroon;">""</span>, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher),
BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher),
new Designer4android(<span style="color: maroon;">"</span><span style="color: maroon;">Tab1Layout</span><span style="color: maroon;">"</span>).loadLayout(this, <span style="color: blue;">null</span>));
tabHost1.extendedAddTab(<span style="color: maroon;">"</span><span style="color: maroon;">tab 2</span><span style="color: maroon;">"</span>, <span style="color: blue;">null</span>, <span style="color: blue;">null</span>, new Designer4android(<span style="color: maroon;">"</span><span style="color: maroon;">Tab2Layout</span><span style="color: maroon;">"</span>).loadLayout(this, <span style="color: blue;">null</span>));
tabHost1.extendedAddTab(<span style="color: maroon;">"</span><span style="color: maroon;">tab 3</span><span style="color: maroon;">"</span>, <span style="color: blue;">null</span>, <span style="color: blue;">null</span>, new Designer4android(<span style="color: maroon;">"</span><span style="color: maroon;">Tab3Layout</span><span style="color: maroon;">"</span>).loadLayout(this, <span style="color: blue;">null</span>));
}</pre>
</div>
The result is:<br />
<br />
<img alt="" border="0" src="http://www.basic4ppc.com/basic4android/images/SS-2012-04-24_15.45.26.png" /></div>
<div id="post_message_98413" style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">
<br /></div>
<div id="post_message_98413" style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">
Download <a href="http://www.basic4ppc.com/forum/attachments/designer4android-tutorials/11551d1335271342-tabhost-example-extendedtabhost.zip">extendedtabhost.zip</a></div>
ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-19525996984520848572012-07-29T06:54:00.000-07:002012-07-29T10:15:20.365-07:00First program - Hello world<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">There are two tasks required in order to build the user interface with Designer4android:</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">- Build the the interface with Designer4android tool.</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">- Integrate the design in your Java project.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">In this simple program we will create a layout made of a single button. Clicking on the button will show a toast message.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">When you start D4A tool you will see two forms: The properties grid / script window and the abstract designer:</span><br />
<br />
<br />
<a name='more'></a><br /><br />
<img alt="" border="0" height="414" src="http://www.basic4ppc.com/basic4android/images/SS-2012-04-18_15.32.20.png" style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" width="640" /><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">The layout is visualized on a connected emulator or connected device.</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Double click on the "status" message to connect D4A to the emulator or device. After a few seconds you should see a black screen.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Add a button by selecting Add View menu -> Button.</span><br />
<br />
<img alt="" border="0" height="265" src="http://www.basic4ppc.com/basic4android/images/SS-2012-04-18_15.36.22.png" style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" width="640" /><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">The WYSIWYG designer shows the view's name if no text is yet assigned. Change the Button's text to Click me.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Save the layout file. </span><b style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">The layout file should be saved in your project assets folder.</b><span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;"> We will name our file Layout1. Note that Android file system is case sensitive.</span><br />
<br />
<b style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Synchronization</b><span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;"> - If you are using Eclipse 3.7 or higher version then you can set Eclipse to automatically update the resources. This is done by checking Preferences - Workspace - Refresh on access. On previous versions or if Eclipse doesn't show a newly added file you will need to right click on the project and choose Refresh.</span><br />
<br />
<b style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Java integration</b><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">As written in the configuration tutorial you should add Designer4android.jar to your project libs folder.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">The program code is:</span><br />
<div style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; margin: 5px 20px 20px; text-align: left;">
<div class="smallfont" style="font-size: 11px; margin-bottom: 2px;">
Code:</div>
<pre class="alt2" dir="ltr" style="background-color: white; border: 1px inset; height: 498px; overflow: auto; padding: 6px; width: 800px;">import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import anywheresoftware.d4a.Designer4android;
import anywheresoftware.d4a.OnLayoutLoadedListener;
<span style="color: blue;">public</span> class Test1Activity extends Activity implements OnLayoutLoadedListener{
@Override
<span style="color: blue;">public</span> void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Designer4android d4a = new Designer4android(<span style="color: maroon;">"</span><span style="color: maroon;">Layout1</span><span style="color: maroon;">"</span>);
ViewGroup vg = d4a.loadLayout(this, this);
setContentView(vg);
}
<span style="color: blue;">public</span> void onLayoutLoaded(Designer4android d4a, <span style="color: darkcyan;">boolean</span> success, <span style="color: darkcyan;">Exception</span> e) {
<span style="color: blue;">if</span> (!success) {
<span style="color: blue;">Log</span>.e(<span style="color: maroon;">"</span><span style="color: maroon;">MyTag</span><span style="color: maroon;">"</span>, <span style="color: maroon;">"</span><span style="color: maroon;">Error loading layout file</span><span style="color: maroon;">"</span>, e);
finish(); //close the activity
<span style="color: blue;">return</span>;
}
final <span style="color: darkcyan;">Button</span> button1 = (<span style="color: darkcyan;">Button</span>)d4a.getView(<span style="color: maroon;">"</span><span style="color: maroon;">Button1</span><span style="color: maroon;">"</span>);
button1.setOnClickListener(new OnClickListener() {
<span style="color: blue;">public</span> void onClick(<span style="color: darkcyan;">View</span> arg0) {
Toast.makeText(button1.getContext(), <span style="color: maroon;">"</span><span style="color: maroon;">Hello world!</span><span style="color: maroon;">"</span>, Toast.LENGTH_LONG).show();
}
});
}
}</pre>
</div>
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">In the manifest file you should declare that all screens are supported:</span><br />
<div style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; margin: 5px 20px 20px; text-align: left;">
<div class="smallfont" style="font-size: 11px; margin-bottom: 2px;">
Code:</div>
<pre class="alt2" dir="ltr" style="background-color: white; border: 1px inset; height: 82px; overflow: auto; padding: 6px; width: 800px;"><supports-screens android:largeScreens=<span style="color: maroon;">"</span><span style="color: maroon;">true</span><span style="color: maroon;">"</span>
android:normalScreens=<span style="color: maroon;">"</span><span style="color: maroon;">true</span><span style="color: maroon;">"</span>
android:smallScreens=<span style="color: maroon;">"</span><span style="color: maroon;">true</span><span style="color: maroon;">"</span>
android:anyDensity=<span style="color: maroon;">"</span><span style="color: maroon;">true</span><span style="color: maroon;">"</span>/></pre>
</div>
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">We create a new object of type Designer4android. The constructor expects a single argument which is the name of the layout file (case sensitive!).</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">We then call loadLayout to load the layout.</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">This method returns a ViewGroup which is the parent of all the layout views. The views are not created immediately. After the ViewGroup is added to the activity the views will be created (during the onMeasure call).</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Designer4android.loadLayout expects two arguments:</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">- Activity which is required for the views context.</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">- OnLayoutLoadedListener - an optional listener that is called after the views are created. In this example our activity implements this interface.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">We first check whether there were any errors. This is useful for debugging.</span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Then we can access the views by their names by calling Designer4android.getView.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Time to run our program </span><img alt="" border="0" class="inlineimg" src="http://www.basic4ppc.com/forum/images/smilies/smile.gif" style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left; vertical-align: middle;" title="Smile" /><br />
<img alt="" border="0" src="http://www.basic4ppc.com/basic4android/images/SS-2012-04-18_15.57.29.png" style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" /><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Note that you can load multiple layout files and also load layouts and add them to other ViewGroups.</span>ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-86093775119753629752012-07-29T06:48:00.001-07:002012-07-29T10:15:50.562-07:00Installation and configuration<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Getting started with Designer4android:</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">1. Download the </span><a href="http://www.basic4ppc.com/android/files/d4a-trial.zip" style="background-color: #f5f5ff; color: #22229c; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" target="_blank">trial version</a><span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;"> or </span><a href="http://www.basic4ppc.com/android/designer4android.html" style="background-color: #f5f5ff; color: #22229c; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" target="_blank">purchase the full version</a><span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">2. Inside the zipped file you will find two files: d4a-install.exe and Designer4android.jar.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">3. Double click on d4a-install to install Designer4android tool.</span><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">4. Designer4android.jar should be added to your Android project. It is done by copying the file to 'libs' folder under your project folder. Create this folder if it doesn't already exist. Right click on the project and choose Refresh to make Eclipse find the new library.</span><br />
<br />
<br />
<a name='more'></a><br /><br />
<img alt="" border="0" src="http://www.basic4ppc.com/basic4android/images/SS-2012-04-18_15.11.26.png" style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" /><br />
<br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">5. Start Designer4android tool. Designer4android depends on 'adb' program (part of the Android SDK). </span><br />
<span style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">Choose Tools -> Configure Paths and set the path to adb.exe:</span><br />
<br />
<img alt="" border="0" src="http://www.basic4ppc.com/basic4android/images/SS-2012-04-18_15.15.04.png" style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;" /><br />
<br />
<b style="background-color: #f5f5ff; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; text-align: left;">You are now ready to start!</b>ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-16584263591120530012012-07-28T19:49:00.002-07:002012-07-28T19:52:31.570-07:00Android - PHP - Microsoft SQL Server<div class="post-body" style="color: #333333; font-family: Georgia, serif; font-size: small; line-height: 1.6em; margin: 0px 0px 0.75em; text-align: left;">
<div style="line-height: 1.6em; margin: 0px 0px 0.75em;">
<div style="line-height: 1.6em; margin: 0px 0px 0.75em; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLB7UBkGHXW1dGM3II3CNFhCCTWqw5eZqAhrUXm87FWk9kCKeWNWeqtbvF_-nSxP4Xh9Vt4JOx10lpdryrJUpHJ1vZvNHDjQPDovvQ8kdXd2QAa_TmEjvGi_jwW0zCcFpfH-ijc9iUOtyq/s1600/Android_PHP_SQL_Server.jpg" style="color: #996699; text-decoration: none;"><br /><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716094015590505506" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLB7UBkGHXW1dGM3II3CNFhCCTWqw5eZqAhrUXm87FWk9kCKeWNWeqtbvF_-nSxP4Xh9Vt4JOx10lpdryrJUpHJ1vZvNHDjQPDovvQ8kdXd2QAa_TmEjvGi_jwW0zCcFpfH-ijc9iUOtyq/s400/Android_PHP_SQL_Server.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 142px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a>As <a href="http://boedblog.blogspot.com/2012/02/android-connection-refused-to.html" style="color: #996699; text-decoration: none;">I promised before</a>, now I would like to share how to create Android applications that connect to Microsoft SQL Server database, using PHP Web Service. And one more thing I want to teach you about how to make Android application WITHOUT using the JAVA programming language. Okay, the tools we will use this time are:</div>
<div style="line-height: 1.6em; margin: 0px 0px 0.75em; text-align: justify;">
<br />
1. <a href="http://www.basic4ppc.com/" style="color: #996699; text-decoration: none;">Basic 4 Android</a>, you can download it <a href="http://www.basic4ppc.com/android/downloads.html" style="color: #996699; text-decoration: none;">here</a>.<br />
2. XAMPP as a web server, you can download it <a href="http://www.apachefriends.org/en/xampp.html" style="color: #996699; text-decoration: none;">here</a>.<br />
3. Microsoft SQL Server 2000, 2005 Express, 2005, 2008 or later, you can download it <a href="http://www.microsoft.com/sqlserver/en/us/editions/express.aspx" style="color: #996699; text-decoration: none;">here</a>.<br />
4. Microsoft Drivers for PHP for SQL Server, you can download it<a href="http://www.microsoft.com/download/en/details.aspx?id=20098" style="color: #996699; text-decoration: none;">here</a>.<br />
5. Android SDK which you can download <a href="http://dl.google.com/android/installer_r16-windows.exe" style="color: #996699; text-decoration: none;">here</a> and Java JDK <a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html" style="color: #996699; text-decoration: none;">here</a>.<br />
<br />
<a name='more'></a><br /><br />
First you must <a href="http://www.basic4ppc.com/android/downloads.html" style="color: #996699; text-decoration: none;">install the Basic 4 Android</a>, and of course you have to buy licenses to use the library functions in it.<br />
<br />
Then install XAMPP, need to be considered for connection to Microsoft SQL Server 2000 I recommend to use the old version for example XAMPP version 1.6.8. If you use Microsoft SQL Server 2005 and above, I recommend to install the latest version of XAMPP and also install the SQL Server Driver for PHP which you can download <a href="http://www.microsoft.com/download/en/details.aspx?id=20098" style="color: #996699; text-decoration: none;">here</a>. This is because the new version of XAMPP is not included drivers for connection from PHP to Microsoft SQL Server.<br />
<br />
I will not go into too much detail for the setting on the <a href="http://www.basic4ppc.com/" style="color: #996699; text-decoration: none;">Basic 4 Android</a>, then XAMPP, I assume that you can, because if I was too detailed to discuss this article becoming too long. I hope you can understand, if you have any questions , you can email me at:<span style="color: #3333ff;">budy_wijaya@yahoo.com</span> or through comments on this blog.<br />
<br />
First time we will make the user interface in the <a href="http://www.basic4ppc.com/" style="color: #996699; text-decoration: none;">Basic 4 Android</a>, by first running the Android SDK - AVD manager.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgAwJOAzA-LrlJ7yrY-MxdncP8jFV0uU5UmXj3Ekuhjpa15PxJMYtnnuV8Nd0Y6Up5R8_zC1lA5vSaRP6vKR7p5cuEVc6WHg51WNs5lF4AxTbdF9oV81K4cJVy9ggUj9HXOg537VMPKq6W/s1600/Android_SQL_Server1.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716086246019978050" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgAwJOAzA-LrlJ7yrY-MxdncP8jFV0uU5UmXj3Ekuhjpa15PxJMYtnnuV8Nd0Y6Up5R8_zC1lA5vSaRP6vKR7p5cuEVc6WHg51WNs5lF4AxTbdF9oV81K4cJVy9ggUj9HXOg537VMPKq6W/s400/Android_SQL_Server1.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 318px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
Then connect the menu Designer at <a href="http://www.basic4ppc.com/" style="color: #996699; text-decoration: none;">Basic 4 Android</a> to AVD manager.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOUPuZPL3p2YIh1ItFULLjwIZTVcA78k5yffS2HXwXjw59kWOoQm_sdqtJW3-zfrW4DOPtH7wkl9SmWZveYq37Z2VfiHt2sNAV53sYfIo931AaS1S3OTZxViHR29wiIcve-0YHm02fhssx/s1600/Android_SQL_Server2.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716086540326494162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOUPuZPL3p2YIh1ItFULLjwIZTVcA78k5yffS2HXwXjw59kWOoQm_sdqtJW3-zfrW4DOPtH7wkl9SmWZveYq37Z2VfiHt2sNAV53sYfIo931AaS1S3OTZxViHR29wiIcve-0YHm02fhssx/s400/Android_SQL_Server2.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 153px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
Then create a login view,<span style="font-style: italic;"> user text box</span>,<span style="font-style: italic;"> password text box</span>, then the <span style="font-style: italic;">Login button</span>, then save by name <span style="font-style: italic;">Login_Form</span>, as shown below<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_EavgH1GB70V_f7C948xsRF5P8V2BI2iaLJjJdKzpe5txikf3V6-jjYGyVG1Wy6TicjCijI7M-39p84rfQg_Dii9NXqvfzwL4OqCnU700bXWDLV_nT2X8DbfmrJx4GVR0zMveFdiW22KM/s1600/Android_SQL_Server3.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716086861988428370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_EavgH1GB70V_f7C948xsRF5P8V2BI2iaLJjJdKzpe5txikf3V6-jjYGyVG1Wy6TicjCijI7M-39p84rfQg_Dii9NXqvfzwL4OqCnU700bXWDLV_nT2X8DbfmrJx4GVR0zMveFdiW22KM/s400/Android_SQL_Server3.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 221px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
Then we move to make the code in Basic 4 Android, the language used is Basic, or <span style="font-style: italic;">Visual Basic Like</span>. First put all the variables in <span style="font-style: italic;">Sub Globals</span>, as shown below<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7hecDLTAhco6G2HaBIU9f-QHIUJxKwFtXKVd5M77mexVpqgKYXyRWUSDF3-DwkFKzYxERH0ifnrL5GuQ0dtpVvpZ3BKOiTCoBRJvEFg_JHD2dS4cLEiETdPq-WQrLA7CihQYVzFWUR3N8/s1600/Android_SQL_Server4.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716088017298542994" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7hecDLTAhco6G2HaBIU9f-QHIUJxKwFtXKVd5M77mexVpqgKYXyRWUSDF3-DwkFKzYxERH0ifnrL5GuQ0dtpVvpZ3BKOiTCoBRJvEFg_JHD2dS4cLEiETdPq-WQrLA7CihQYVzFWUR3N8/s400/Android_SQL_Server4.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 127px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
Then the procedure<span style="font-style: italic;"> Activity_Create</span> type the code shown below, the function of this code is to load Login_Form. And do not forget to checked the necessary library ,library <span style="font-style: italic;">http</span> and <span style="font-style: italic;">json</span> library.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt9H2UIaHwdMl2bYi5NrsLUhKPVUZii3Fu3phUfAlqPBmm693gdg4boaE26eSJTYJg5Q5mLc02-rfoDPthwevWP3hH2jGl4FknCRWIPd0gX9fzONJ1zgnIXV-aXzVFQzDaW4U8TXLKJmxb/s1600/Android_SQL_Server5.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716088534566663186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt9H2UIaHwdMl2bYi5NrsLUhKPVUZii3Fu3phUfAlqPBmm693gdg4boaE26eSJTYJg5Q5mLc02-rfoDPthwevWP3hH2jGl4FknCRWIPd0gX9fzONJ1zgnIXV-aXzVFQzDaW4U8TXLKJmxb/s400/Android_SQL_Server5.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 216px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
Then create a procedure to capture input on <span style="font-style: italic;">user text box</span> , create a procedure and code like in the picture below<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4BknhdPpTDap8wBoAPN4bbE5fcoQBRzsl32L2mJ9MfHeRjRFyKK8qqqXUNtNXrkjT3HVDqH9c4IM5Ay1EYrKJ6X6mxC-mNp7cota1Fo5UFnZIaS9wQ8iaaPTNiy2-R5S1_9N_dMpvTv0E/s1600/Android_SQL_Server6.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716088940066429010" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4BknhdPpTDap8wBoAPN4bbE5fcoQBRzsl32L2mJ9MfHeRjRFyKK8qqqXUNtNXrkjT3HVDqH9c4IM5Ay1EYrKJ6X6mxC-mNp7cota1Fo5UFnZIaS9wQ8iaaPTNiy2-R5S1_9N_dMpvTv0E/s400/Android_SQL_Server6.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 149px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
For complete syntax <span style="font-style: italic;">querp.php</span> <a href="http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/8339-connect-android-mysql-database-tutorial.html#post46745" style="color: #996699; text-decoration: none;">you can see here</a> and you have to replace <a href="http://id.php.net/manual/en/function.mysql-connect.php" style="color: #996699; text-decoration: none;"><span style="font-style: italic;">mysql_connect</span></a> to <a href="http://php.net/manual/en/function.mssql-connect.php" style="color: #996699; text-decoration: none;"><span style="font-style: italic;">mssql_connect</span></a> (because we used Microsoft SQL Server not MySQL as database server), if you use XAMPP is necessary to note problems like this.<br />
<br />
Then at procedure <span style="font-style: italic;">hc_responseSuccess</span>, type the code as shown below:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNb0n1siQs9J8I9_17pkiNP52bg4iLa_Tvopv2Sn6Y_I-iND92fWADLbs5BJtxztysbh7aLlKv8gvBlK_h0FilTPAmi7F7oNMXfXHwWZOm7SPNNPrsK1yVge7mMlwEWyEwnjDOwLzmxb8w/s1600/Android_SQL_Server7.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716089928465629874" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNb0n1siQs9J8I9_17pkiNP52bg4iLa_Tvopv2Sn6Y_I-iND92fWADLbs5BJtxztysbh7aLlKv8gvBlK_h0FilTPAmi7F7oNMXfXHwWZOm7SPNNPrsK1yVge7mMlwEWyEwnjDOwLzmxb8w/s400/Android_SQL_Server7.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 252px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
When finished,try to run the program in <a href="http://www.basic4ppc.com/" style="color: #996699; text-decoration: none;">Basic 4 Android</a>, for <a href="http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/6477-installing-basic4android-android-sdk.html" style="color: #996699; text-decoration: none;">the initial setting Basic 4 Android, you can see the tutorial here</a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRmvftYzDh77c-0uBRe6xzKEESE8aON4WGoYsb9EduwiLszg_8YciPbCh9U0AzdyT1gRX7dXSaE9YAYNdMqo6X_7AdNJrn3umPqIL_JsZNpZZTh6HB6k5-yjCJkGXYmguzdbDst7tR6x3/s1600/Android_SQL_Server8.jpg" style="color: #996699; text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5716090592695753618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRmvftYzDh77c-0uBRe6xzKEESE8aON4WGoYsb9EduwiLszg_8YciPbCh9U0AzdyT1gRX7dXSaE9YAYNdMqo6X_7AdNJrn3umPqIL_JsZNpZZTh6HB6k5-yjCJkGXYmguzdbDst7tR6x3/s400/Android_SQL_Server8.jpg" style="border: 1px solid rgb(221, 221, 221); cursor: pointer; display: block; height: 216px; margin: 0px auto 10px; padding: 4px; text-align: center; width: 400px;" /></a><br />
Then try the user name previously already exists in Microsoft SQL Server database, and then press enter, if successful it will appear as below:</div>
</div>
</div>
<br />ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com4tag:blogger.com,1999:blog-6986428656995103496.post-78782251044564094782012-07-28T03:44:00.001-07:002012-08-03T01:43:53.892-07:00Posts<span style="color: #f3f3f3;"><br /></span><br />
<h2 style="border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 18px; font-weight: normal; margin: 0px; padding: 0.6em 0px 0.5em; position: relative; text-shadow: rgb(0, 0, 0) 0px 0px 20px;">
</h2>
<h2 style="border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-bottom-width: 1px; font-size: 18px; font-weight: normal; margin: 0px; padding: 0.6em 0px 0.5em; position: relative; text-shadow: rgb(0, 0, 0) 0px 0px 20px;">
<span style="background-color: white; color: white;">
Android</span></h2>
<div class="widget-content list-label-widget-content" style="border-top-color: rgb(45, 48, 55); border-top-style: solid; border-top-width: 0px; font-size: 13px; margin: 0px; padding: 7px 0px 0px;">
<ol>
<li><a dir="ltr" href="http://mob-programming.blogspot.com/search/label/Android%20-%20A%20beginner%27s%20guide" style="line-height: 1.2; text-decoration: none;"><span style="background-color: white; color: blue;">Android - A beginner's guide</span></a></li>
<li><a dir="ltr" href="http://mob-programming.blogspot.com/search/label/Installing%20Eclipse%20and%20the%20Android%20SDK%20%28Windows%20XP%29" style="line-height: 1.2; text-decoration: none;"><span style="background-color: white; color: blue;">Installing Eclipse and the Android SDK (Windows XP)</span></a></li>
<li><a dir="ltr" href="http://mob-programming.blogspot.com/search/label/Android%20SDK%20Installation%20Guide" style="line-height: 1.2; text-decoration: none;"><span style="background-color: white; color: blue;">Android SDK Installation Guide</span></a></li>
<li><span style="background-color: white; color: blue; line-height: 1.2; text-decoration: none;"><a dir="ltr" href="http://mob-programming.blogspot.com/search/label/How%20to%20connect%20and%20access%20SQL%20Database%20server%20from%20Android%20app%3F%3F" style="line-height: 1.2; text-decoration: none;">How to connect and access SQL Database server from Android app</a></span></li>
</ol>
<div>
<br /></div>
<div>
Tags:<span style="background-color: #ffffcc; color: #222222; font-family: Arial, Helvetica, sans-serif; white-space: nowrap;">programming,windows,mobile,eclipse,android,iphone</span></div>
<ul style="line-height: 1.2; list-style: none; margin: -8px -15px 0px; padding: 0px;">
<li style="border-bottom-style: none; border-top-color: rgb(45, 48, 55); border-top-style: solid; border-top-width: 0px; margin: 0px; padding: 0.5em 15px;"><br /></li>
</ul>
</div>ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0tag:blogger.com,1999:blog-6986428656995103496.post-22620351946715493742012-06-17T03:09:00.000-07:002012-07-28T19:53:01.200-07:00Installing Eclipse and the Android SDK (Windows XP)<table bgcolor="white" border="3px" style="border-color: #29aae1;"><tbody>
<tr><td><div class="smallfont" style="border: 0px; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 11px; margin: 0px auto;">
<b><br /></b><br />
<div align="right" style="border: 0px; margin: 0px auto;">
</div>
</div>
<hr size="1" style="background-color: #d1d1e1; border: 0px; color: #d1d1e1; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; margin: 0px auto;" />
<div id="post_message_14586" style="border: 0px; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; margin: 0px auto;">
The first thing we need to do is download all of the needed files. First up, the Android SDK. You can download it from <a href="http://code.google.com/android/download.html" style="border: 0px; color: #12469d; margin: 0px auto; text-decoration: none;" target="_blank">http://code.google.com/android/download.html</a><br />
<br />
Now, let's download Java. Open up <a href="http://developers.sun.com/downloads" style="border: 0px; color: #12469d; margin: 0px auto; text-decoration: none;" target="_blank">http://developers.sun.com/downloads</a> in your browser. Click the expand button [+] for Java SE and click on Java SE (JDK) 6. It will take you to a page with more choices. We're going to want <b style="border: 0px; margin: 0px auto;">JDK 6 Update 10 with Java EE</b>. Select Windows, and the Language you want, and you can finally download the JDK.<br />
<br />
<a name='more'></a><br /><br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture103-java1.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Last but not least, we're going to need Eclipse. Head over to <a href="http://www.eclipse.org/downloads/" style="border: 0px; color: #12469d; margin: 0px auto; text-decoration: none;" target="_blank">http://www.eclipse.org/downloads/</a>. The version we want is <b style="border: 0px; margin: 0px auto;">Eclipse IDE for Java Developers</b>. The JEE version will work as well.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture104-java2.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Now, we've downloaded just about everything we're going to need.<br />
<br />
Let's go ahead and fire up the JDK installer.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture105-java3.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click next, agree to the license, next again (installing to C:\Sun\SDK), and we'll be prompted to set the admin password.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture106-java4-fixed.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Enter a password and click next. Now we'll be presented with the installation options. You can leave these default and click next. Finally, it will let you install what we've chosen.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture107-java5-fixed.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click install now.<br />
<br />
Time to wait. Grab something to drink (or eat).<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture108-java6-fixed.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
At the end of the install we'll be prompted to sign in (if registered.) You can sign up if you'd like, or log in if you've already signed up. You can also skip the whole process if you want.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture109-java7.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Tah dah, that's finished. You can click Finish, skipping starting the server (we won't need it.)<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture110-java8.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Now we can get started on the fun stuff. Create a new folder on your C: Drive (or whatever you use,) and name it android. Open up the Android SDK zip, and go into the main folder. Copy all of the files from the Android SDK zip into C:\android.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture111-sdk1.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
We've now got to set the all important Path variable. Right click on My Computer and click Advanced, Environmental Variables (or <b style="border: 0px; margin: 0px auto;">Start -> Settings -> Control Panel -> System -> Advanced -> Environmental Variables</b>.)<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture112-sdk2.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
In the Environmental Variables window, in the System Variables pane, scroll down to Path. Double click on it to edit it. Scroll all the way to the right side of the value, and add "<b style="border: 0px; margin: 0px auto;">;c:\android\tools</b>" (or the absolute path to your tools folder,) to the end of it, as shown below.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture113-sdk3.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click OK in all of the windows, and that's good to go.<br />
<br />
Time for Eclipse. Create a new folder on your C: Drive (or whatever you use,) and name it eclipse. Just like before, open up the Eclipse zip, go into the main folder, and copy all of the files into C:\eclipse.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture114-sdk4.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Almost there! Go ahead and make a shortcut to Eclipse on your Desktop (if you want.) Start up Eclipse.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture85-eclipse1.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
It will prompt you to choose a workspace location.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture86-eclipse2.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
This is where all of your project files will be stored. Set it where you want, and click OK.<br />
<br />
Once Eclipse is started up, we can add the ADT plugin. In the menu, <b style="border: 0px; margin: 0px auto;">Help -> Software Updates</b>.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture87-eclipse3.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click on the Available Software tab at the top.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture88-eclipse4.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click on Add Site. For the URL, we're going to use <a href="http://dl-ssl.google.com/android/eclipse" style="border: 0px; color: #12469d; margin: 0px auto; text-decoration: none;" target="_blank">http://dl-ssl.google.com/android/eclipse</a>.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture89-eclipse5.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click OK. It may tell you that there was no repository found at <a href="https://dl-ssl.google.com/android/eclipse" style="border: 0px; color: #12469d; margin: 0px auto; text-decoration: none;" target="_blank">https://dl-ssl.google.com/android/eclipse</a>. That's fine, Click OK.<br />
<br />
Expand the tree for <a href="http://dl-ssl.google.com/android/eclipse" style="border: 0px; color: #12469d; margin: 0px auto; text-decoration: none;" target="_blank">http://dl-ssl.google.com/android/eclipse</a> (note http, not https.) Click the checkbox next to the tree expander, and it will select all of the tools.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture90-eclipse7.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click Install. Eclipse will go ahead and calculate the installation stuff it needs, and download the files.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture91-eclipse8.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click finish, and it will install them.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture92-eclipse9.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Eclipse will prompt you to restart, click Yes. Eclipse will restart, and whalah, you're finished!<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture93-eclipse10.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
To run a quick test and make sure everything is working properly, go to <b style="border: 0px; margin: 0px auto;">File -> New -> Project</b>. Expand Android, click on Android Project, and click Next.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture94-eclipse11.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Now we'll have to fill in our project information. Because this is a test run, we'll call the project testrun. For the package name, we'll use com.android.test. And last but not least, the activity name will be test.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture95-eclipse12.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click Finish.<br />
<br />
Eclipse will crunch on that for a second, and open the project in the left pane. Expand the main tree to see the file structure of a default new project. The last thing we need to do before we run our test application is set up a run configuration. In the menu, go to <b style="border: 0px; margin: 0px auto;">Run -> Run Configurations...</b><br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture96-eclipse13.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Double click on Android Application and it will create a new configuration. Give the configuration a name, and click browse for the project.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture97-eclipse14.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Choose your project, click OK. Now click Apply, then Run.<br />
<br />
You'll notice the bottom pane switches over to Console. This will let you know what's going on with the emulator. After a few seconds, the emulator will start up.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture98-eclipse15.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Note that the first run will take<b style="border: 0px; margin: 0px auto;"> *much*</b> longer than usual to start up, as it's setting up the Android OS while it starts up for the first time. Depending on the specs of your computer, it can take anywhere from a few minutes to over half an hour.<br />
<br />
After awhile, you'll arrive at the starting screen.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture99-eclipse16.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
Click on Menu to unlock the screen. Usually, you'll get a few errors as things start up and can't be started.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture100-eclipse17.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
I usually just click wait. In the console, you'll see it install, and then start up your application.<br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture101-eclipse18.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
<img alt="" border="0" src="http://androidforums.com/members/devolio-albums-android-sdk-win32-picture102-eclipse19.jpg" style="border: 0px; margin: 0px auto;" /><br />
<br />
And with that, it's time for you to dive into the code and start making your application.</div>
</td>
</tr>
</tbody></table>ayourhttp://www.blogger.com/profile/18317012495610148697noreply@blogger.com0