Thursday, June 30, 2011
SmartPhones by Sachin Shelke ™: How to Create ProgressBar in Android using XML
SmartPhones by Sachin Shelke ™: How to Create ProgressBar in Android using XML: "How to use progress bar using Layout.xml file follow the steps.... Step : 1 - Create XML with as given below <Line..."
JSON Data Parsing in Android - Part - 1
We are discussing the following points to Parse JSON data in android
Relation Between Android & JSON
Android already have inbuild JSON libraries. The Following class are used to parse the JSON Object.
JSONArray A JSONArray is an ordered sequence of values.
JSONObject A JSONObject is an unordered collection of name/value pairs.
JSONStringer JSONStringer provides a quick and convenient way of producing JSON text.
JSONTokener A JSONTokener takes a source string and extracts characters and tokens from it.
Steps to Parse JSON Data in Android
1. Create a JSON Object and Convert JSONString to JSON Object
JSONObject jsonObject = new JSONObject(jsonDataString);
2. Create a Key based JSONObject.
JSONObject menuObject = jsonObject.getJSONObject("Menu");
3. Get the Value
Log.d("JSON", "Menu = " + menuObject.getString("menu"));
Log.d("JSON", "Value = " + menuObject.getString("value"));
Android JSON Example
Don't Forget to Leave Comments....
- Why JSON Format?
- Syntax & Structure of JSON Format
- Relation Between Android & JSON
- Steps to Parse JSON data in Android
- Sample Application
- Lightweight data-interchangeable format
- Text format that is completely language independent and easy to read
- JSON is
- A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, Key-Value Pair , or associative array.
- An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
Syntax & Structure of JSON Format
- With Normal Object Collection
Object_Name : {Key1 : Value1 , Key2 : Value2 , Key3 : Value3}
Example =
{
"FileMenu": {
"subMenu":"New","details":"Create New File",
"subMenu":"Open","details":"Open Existing File",
"subMenu":"Save","details":"Save File"
}
} - With Array Based Object Collection
Object_Name : [
{Key1_1 : Value1_1 , Key1_2 : Value1_2 , Key1_3 : Value1_3},
{Key2_1 : Value2_1 , Key2_2 : Value2_2 , Key2_3 : Value2_3}
]
Example =
{
"Menu": {
"menu":"File",
"value":"File",
"popup":{
"MenuItem":
[
{"subMenu":"New","details":"Create New File"}, {"subMenu":"Open","details":"Open Existing File"},
{"subMenu":"Save","details":"Save File"}
]
}
}
}
Relation Between Android & JSON
Android already have inbuild JSON libraries. The Following class are used to parse the JSON Object.
JSONArray A JSONArray is an ordered sequence of values.
JSONObject A JSONObject is an unordered collection of name/value pairs.
JSONStringer JSONStringer provides a quick and convenient way of producing JSON text.
JSONTokener A JSONTokener takes a source string and extracts characters and tokens from it.
Steps to Parse JSON Data in Android
1. Create a JSON Object and Convert JSONString to JSON Object
JSONObject jsonObject = new JSONObject(jsonDataString);
2. Create a Key based JSONObject.
JSONObject menuObject = jsonObject.getJSONObject("Menu");
3. Get the Value
Log.d("JSON", "Menu = " + menuObject.getString("menu"));
Log.d("JSON", "Value = " + menuObject.getString("value"));
Android JSON Example
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String myJsonContent = "{\"Menu\": {\"menu\":\"File\",\"value\":\"File\",\"popup\":{\"MenuItem\":[{\"subMenu\":\"New\",\"details\":\"Create New File\"},{\"subMenu\":\"Open\",\"details\":\"Open Existing File\"},{\"subMenu\":\"Save\",\"details\":\"Save File\"}]}}}";
sampleJsonParser(myJsonContent);
}
public void sampleJsonParser(String jsonString) {
try {
JSONObject jObject = new JSONObject(jsonString);
JSONObject menuObject = jObject.getJSONObject("Menu");
Log.d("JSON", "Menu = " +menuObject.getString("menu"));
Log.d("JSON", "Value = " + menuObject.getString("value"));
JSONObject popupObject = menuObject.getJSONObject("popup");
JSONArray menuitemArray = popupObject.getJSONArray("MenuItem");
for (int i = 0; i < 3; i++) {
Log.d("JSON", "Name = " + menuitemArray.getJSONObject(i).getString("subMenu")
.toString());
Log.d("JSON", "Value = " +menuitemArray.getJSONObject(i).getString(
"details").toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String myJsonContent = "{\"Menu\": {\"menu\":\"File\",\"value\":\"File\",\"popup\":{\"MenuItem\":[{\"subMenu\":\"New\",\"details\":\"Create New File\"},{\"subMenu\":\"Open\",\"details\":\"Open Existing File\"},{\"subMenu\":\"Save\",\"details\":\"Save File\"}]}}}";
sampleJsonParser(myJsonContent);
}
public void sampleJsonParser(String jsonString) {
try {
JSONObject jObject = new JSONObject(jsonString);
JSONObject menuObject = jObject.getJSONObject("Menu");
Log.d("JSON", "Menu = " +menuObject.getString("menu"));
Log.d("JSON", "Value = " + menuObject.getString("value"));
JSONObject popupObject = menuObject.getJSONObject("popup");
JSONArray menuitemArray = popupObject.getJSONArray("MenuItem");
for (int i = 0; i < 3; i++) {
Log.d("JSON", "Name = " + menuitemArray.getJSONObject(i).getString("subMenu")
.toString());
Log.d("JSON", "Value = " +menuitemArray.getJSONObject(i).getString(
"details").toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Download Source Code & SVN Repository
Check Your Log with Tag JSON
Enjoy The Code................
Wednesday, June 29, 2011
How to Create ProgressBar in Android using XML
How to use progress bar using Layout.xml file
follow the steps....
Step : 1 -
Create XML with <ProgressBar .....> as given below
</LinearLayout>
Step : 2 -
Create an Activity to show progress bar on Screen
follow the steps....
Step : 1 -
Create XML with <ProgressBar .....> as given below
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="My Progress Bar Demo" />
<ProgressBar android:id="@+id/progressbar"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" style="?android:attr/progressBarStyleLarge"/>
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="My Progress Bar Demo" />
<ProgressBar android:id="@+id/progressbar"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" style="?android:attr/progressBarStyleLarge"/>
</LinearLayout>
Note: You can change the ProgressBar Style to
- android:progressBarStyle
- android:progressBarStyleHorizontal
- android:progressBarStyleLarge
- android:progressBarStyleSmall
Step : 2 -
Create an Activity to show progress bar on Screen
public class MyProgressBar extends Activity { private static int progress = 0; private ProgressBar progressBar; private int progressStatus = 0; private Handler handler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.basicviews); progressBar = (ProgressBar) findViewById(R.id.progressbar); //---do some work in background thread--- new Thread(new Runnable() { public void run() { //---do some work here--- while (progressStatus < 10) { progressStatus = taskToDo(); } //---hides the progress bar--- handler.post(new Runnable() { public void run() { progressBar.setVisibility(View.GONE); } }); } //---do some long lasting work here--- private int taskToDo() { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } return ++progress; } }).start(); } }
Thursday, June 9, 2011
How To Remove Extra Spaces From String
public static String LRTrim(String str) {
str = str.replaceAll(" ", " "); // replace all double spaces with single Space
return str.trim(); // remove all LEFT side & Right Side Extra white spaces from the string
}
Wednesday, June 8, 2011
Sending ThirdParty Email in Android
Hi All,
This is first step to send third party email from Android Application.
There are total 5 steps to create to send email application in android.
Please Compile program after complete all steps.
Yout have to add some external Library into Application. Find the Step 5 For the Same.
Step : 1 Write the Main Activity where you want to send email.
final Button send = (Button) this.findViewById(R.id.sentBtn);
send.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
//this is use to send email from which account
GMailSender sender = new GMailSender("<Gmail UserName>", "<Ur PASSWORD>");
try
{
// Add your Data like subject , message, senderEmail and email to
sender.sendMail("Demo Transaction Receipt", "This is Demo Transaction email",
"<Sender Email Address>", "<email TO>");
} catch (Exception e)
{
Log.e("SendMail", e.getMessage(), e);
}
}
});
Step : 2 --> Write the GMailSender where you have set you email sender setting. we are using Google setting as we are sending email using Gmail account
//import necessary packages
public class GMailSender extends javax.mail.Authenticator
{
private String mailhost = "smtp.gmail.com";
private String user;
private String password;
private Session session;
static
{
//you have to create JSSEProvider() please find the Class Below
Security.addProvider(new JSSEProvider());
}
public GMailSender(String user, String password)
{
this.user = user;
this.password = password;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, password);
}
public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception
{
try
{
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/html"));
message.setSender(new InternetAddress(sender));
message.setSubject("Demo Transaction Receipt");
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
} catch (MessagingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class ByteArrayDataSource implements DataSource
{
private byte[] data;
private String type;
public ByteArrayDataSource(byte[] data, String type)
{
super();
this.data = data;
this.type = type;
}
public ByteArrayDataSource(byte[] data)
{
super();
this.data = data;
}
public void setType(String type)
{
this.type = type;
}
public String getContentType()
{
if (type == null)
return "application/octet-stream";
else
return type;
}
public InputStream getInputStream() throws IOException
{
return new ByteArrayInputStream(data);
}
public String getName()
{
return "ByteArrayDataSource";
}
public OutputStream getOutputStream() throws IOException
{
throw new IOException("Not Supported");
}
}
}
Step : 3 Write the JSSEProvider for Security Setting
public final class JSSEProvider extends Provider
{
public JSSEProvider()
{
super("HarmonyJSSE", 1.0, "Harmony JSSE Provider");
AccessController.doPrivileged(new java.security.PrivilegedAction<Void>()
{
public Void run()
{
put("SSLContext.TLS", "org.apache.harmony.xnet.provider.jsse.SSLContextImpl");
put("Alg.Alias.SSLContext.TLSv1", "TLS");
put("KeyManagerFactory.X509", "org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl");
put("TrustManagerFactory.X509", "org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl");
return null;
}
});
}
}
Step : 4 Setting Internet Permission in AndroidManifest.xml
As We know, to send email we required Internet Connection and Permission to the application.
Add the following permission in AndroidMenifest.xml above <application Tag......></application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Step : 4 Adding External Library
To Send email we need to Add some External Library into an Application
Download the Following Libraries and follow the Steps
Activation.jar
Additionnal.jar
Mail.jar
How To add External Libraries in Eclipse Project
Now You Can Compile your project and send email.
Don't Forget to Leave Comments
This is first step to send third party email from Android Application.
There are total 5 steps to create to send email application in android.
Please Compile program after complete all steps.
Yout have to add some external Library into Application. Find the Step 5 For the Same.
Step : 1 Write the Main Activity where you want to send email.
final Button send = (Button) this.findViewById(R.id.sentBtn);
send.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
//this is use to send email from which account
GMailSender sender = new GMailSender("<Gmail UserName>", "<Ur PASSWORD>");
try
{
// Add your Data like subject , message, senderEmail and email to
sender.sendMail("Demo Transaction Receipt", "This is Demo Transaction email",
"<Sender Email Address>", "<email TO>");
} catch (Exception e)
{
Log.e("SendMail", e.getMessage(), e);
}
}
});
Step : 2 --> Write the GMailSender where you have set you email sender setting. we are using Google setting as we are sending email using Gmail account
//import necessary packages
public class GMailSender extends javax.mail.Authenticator
{
private String mailhost = "smtp.gmail.com";
private String user;
private String password;
private Session session;
static
{
//you have to create JSSEProvider() please find the Class Below
Security.addProvider(new JSSEProvider());
}
public GMailSender(String user, String password)
{
this.user = user;
this.password = password;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, password);
}
public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception
{
try
{
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/html"));
message.setSender(new InternetAddress(sender));
message.setSubject("Demo Transaction Receipt");
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
} catch (MessagingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class ByteArrayDataSource implements DataSource
{
private byte[] data;
private String type;
public ByteArrayDataSource(byte[] data, String type)
{
super();
this.data = data;
this.type = type;
}
public ByteArrayDataSource(byte[] data)
{
super();
this.data = data;
}
public void setType(String type)
{
this.type = type;
}
public String getContentType()
{
if (type == null)
return "application/octet-stream";
else
return type;
}
public InputStream getInputStream() throws IOException
{
return new ByteArrayInputStream(data);
}
public String getName()
{
return "ByteArrayDataSource";
}
public OutputStream getOutputStream() throws IOException
{
throw new IOException("Not Supported");
}
}
}
Step : 3 Write the JSSEProvider for Security Setting
public final class JSSEProvider extends Provider
{
public JSSEProvider()
{
super("HarmonyJSSE", 1.0, "Harmony JSSE Provider");
AccessController.doPrivileged(new java.security.PrivilegedAction<Void>()
{
public Void run()
{
put("SSLContext.TLS", "org.apache.harmony.xnet.provider.jsse.SSLContextImpl");
put("Alg.Alias.SSLContext.TLSv1", "TLS");
put("KeyManagerFactory.X509", "org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl");
put("TrustManagerFactory.X509", "org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl");
return null;
}
});
}
}
Step : 4 Setting Internet Permission in AndroidManifest.xml
As We know, to send email we required Internet Connection and Permission to the application.
Add the following permission in AndroidMenifest.xml above <application Tag......></application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Step : 4 Adding External Library
To Send email we need to Add some External Library into an Application
Download the Following Libraries and follow the Steps
Activation.jar
Additionnal.jar
Mail.jar
How To add External Libraries in Eclipse Project
- Open Package Explorer
- Write Click on the Project
- Mouse Over on "Build Path" --> and select "Add External Archives"
- Select all the Libraries which you want to add. Here we are adding above libraries.
- Congratulation.
Now You Can Compile your project and send email.
Don't Forget to Leave Comments
Subscribe to:
Posts (Atom)