In this post, we are going to develop a simple email application where you can send email.
What it is gonna do?
You have to enter the email ID, subject, message and hit send, on hitting send button you will be prompted with list of email clients installed in your mobile to choose. Choose email client,say GMail, information you typed in our application will be taken to GMail application. Now all you have to do is hit ‘Send’ in GMail application.
Let us begin with the development..
Layout creation:
Application will have:
Three edittext controls – 1. email ID 2. subject 3. message
Three edittext controls – 1. email ID 2. subject 3. message
One button – Send
I have created layout for this application and the layout.xml of the application is given below:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| <? xml version = "1.0" encoding = "utf-8" ?> android:id = "@+id/linearLayout1" android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "vertical" > < TextView android:id = "@+id/textViewPhoneNo" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "To" android:textAppearance = "?android:attr/textAppearanceLarge" /> < EditText android:id = "@+id/editTextTo" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:inputType = "textEmailAddress" > < requestFocus /> </ EditText > < TextView android:id = "@+id/textViewSubject" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Subject" android:textAppearance = "?android:attr/textAppearanceLarge" /> < EditText android:id = "@+id/editTextSubject" android:layout_width = "fill_parent" android:layout_height = "wrap_content" > </ EditText > < TextView android:id = "@+id/textViewMessage" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Message" android:textAppearance = "?android:attr/textAppearanceLarge" /> < EditText android:id = "@+id/editTextMessage" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:gravity = "top" android:inputType = "textMultiLine" android:lines = "5" /> < Button android:id = "@+id/buttonSend" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "Send" /> </ LinearLayout > |
Layout view:
We are done with UI, let us begin code the logic.
Create button and edittext objects to refer the resources from layout.xml:
1
2
3
4
5
6
7
| Button buttonSend; //Recipient Email ID EditText txtTo; //Subject EditText txtSubject; //Message body EditText txtMessage; |
Refer the controls we created in layout.xml to handle the events:
1
2
3
4
| buttonSend = (Button) findViewById(R.id.buttonSend); txtTo = (EditText) findViewById(R.id.editTextTo); txtSubject = (EditText) findViewById(R.id.editTextSubject); txtMessage = (EditText) findViewById(R.id.editTextMessage); |
Create listener class for the ‘Send’ button to handle button click event inside onCreate method:
1
2
3
4
5
| buttonSend.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { } }); |
Include the validation and email send logic inside button listener class:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| //String object to store Recipient email ID String to = txtTo.getText().toString(); //String object to store Subject String subject = txtSubject.getText().toString(); //String object to store Message String message = txtMessage.getText().toString(); //If email ID is not entered, display toast message if (to != null && to.length() == 0 ) { Toast.makeText(getApplicationContext(), "You forgot to enter the email ID" , Toast.LENGTH_SHORT).show(); //If entered email ID is not valid, display toast message } else if (to != null && to.length() > 0 && !isEmailValid(to)) { Toast.makeText(getApplicationContext(), "Entered email ID is not Valid" , Toast.LENGTH_SHORT) .show(); //If subject is empty, display toast message } else if (subject != null && subject.length() == 0 ) { Toast.makeText(getApplicationContext(), "You forgot to enter the subject" , Toast.LENGTH_SHORT).show(); //If message is empty, display toast message } else if (message != null && message.length() == 0 ) { Toast.makeText(getApplicationContext(), "You forgot to enter the message" , Toast.LENGTH_SHORT).show(); //If all three controls are entered with valid values } else if (to != null && subject != null && message != null ) { Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_EMAIL, new String [] { to }); email.putExtra(Intent.EXTRA_SUBJECT, subject); email.putExtra(Intent.EXTRA_TEXT, message); email.setType( "message/rfc822" ); startActivity(Intent.createChooser(email, "Choose an Email client :" )); } |
Boolean method to validate the email ID:
1
2
3
4
| //Boolean method to check if entered email ID is valid or not boolean isEmailValid(CharSequence email) { return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches(); } |
It’s time to run our application, connect the mobile device to system through USB. Right click on project >> Run as >> Android application.
Android application(.apk) will be installed in the device and start the activity.
Final output should look like this:
akm
www.cdacians.com
No comments:
Post a Comment