Sunday 1 February 2015

Android Studio Keyboard Short Cut | Android Studio Keyboard Short Cut similar to eclipse

Hello Friends,
               This is my first blog on Android Studio, the official IDE for Android application
development, based on IntelliJ IDEA which offers following features :

- Flexible Gradle-based build system
- Build variants and multiple apk file generation
- Code templates to help you build common app features
- Rich layout editor with support for drag and drop theme editing
- Lint tools to catch performance, usability, version compatibility, and other problems
- ProGuard and app-signing capabilities
- Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud
   Messaging and App Engine
- And much more


Here, I am sharing few things which make the development easy in Android Studio :

1. Setting "Android  Studio" development environment same as Eclipse, we can easily
    use the Eclipse keyboard shortcuts in  "Android Studio". following are the
    steps :
            - Open Android Studio and Click on File
            - Go to Settings (or Ctrl+Alt+S)
            - In Settings select Keymaps from left
            - In Keymaps the setting will be set as  "default" change it to "eclipse"
            - Done, now enjoy all eclipse shortcut in android studio
                       

2.  The default android Studio keyboard short cuts are:
         - Download Android Studio Short Cut  Pdf file : Here

 
Android Studio Shortcuts You Need the Most
Navigation Shortcuts
Shortcut DescriptionAndroid Studio Shortcut
Go to class Ctrl + N
Go to file Ctrl + Shift + N
Navigate open tabs ALT + Left-Arrow; ALT + Right-Arrow
Lookup recent files CTRL + E
Go to line CTRL + G
Navigate to last edit location CTRL + SHIFT + BACKSPACE
Go to declaration CTRL + B
Go to implementation CTRL + ALT + B
Go to source F4
Go to super Class CTRL + U
Show Call hierarchy Ctrl + Alt + H
Search in path/project CTRL + SHIFT + F
Programming Shortcuts
Shortcut Description Android Studio Shortcut
Reformat code CTRL + ALT + L
Optimize imports CTRL + ALT + O
Code Completion CTRL + SPACE
Issue quick fix ALT + ENTER
Surround code block CTRL + ALT + T
Rename and refactor Shift + F6
Line Comment or Uncomment CTRL + /
Block Comment or Uncomment CTRL + SHIFT + /
Go to previous/next method ALT + UP/DOWN
Show parameters for method CTRL + P
Quick documentation lookup CTRL + Q
General Shortcuts
Shortcut Description Android Studio Shortcut
Delete line CTRL + Y
Safe Delete Alt + DELETE
Close Active Tab CTRL + F4
Build and run SHIFT + F10
Build CTRL + F9
All purpose (Meta)Shortcut CTRL + SHIFT + A
www.androiddevelopersolutions.com


 Done!
Enjoy Coding......  :)

You can also Check This:
1. How to add support library in Android Studio
2. How to add different .jar file in Android Studio

Monday 19 January 2015

Android Custom Horizontal progress bar | Custom Progress bar

Hello Friends,
                  Today,I am going to share my another blog which helps you in customizing
Horizontal Progress Bar.With the help of this Android tutorial we can also implement
the Android PI Chart view with multiple color.

Actually my need to show some PI Chart like view with multiple different color which fills
dynamically base on the percentage,  without using any 3rd party library. So , I first go
with Horizontal progress bar but in horizontal progress bar only show up-to two level 
progress with different color.

Finally, I have written a custom progress bar code using android seek bar. Using this we
can add "N level" of different color with different percentage.And Its very simple and
easily understandable.

Horizontal Progress bar


Here is my code :

1. MainActivity.java

package com.android.customprogressbar;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

 private CustomProgressBar seekbar;
 private ArrayList progressItemList;
 private ProgressItem mProgressItem;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  seekbar = ((CustomProgressBar) findViewById(R.id.seekBar0));
  seekbar.getThumb().mutate().setAlpha(0);
  initDataToSeekbar();
 }

 private void initDataToSeekbar() {
  progressItemList = new ArrayList();
  // red span
  mProgressItem = new ProgressItem();
  mProgressItem.progressItemPercentage = 20;
  Log.i("Mainactivity", mProgressItem.progressItemPercentage + "");
  mProgressItem.color = R.color.red;
  progressItemList.add(mProgressItem);
  // blue span
  mProgressItem = new ProgressItem();
  mProgressItem.progressItemPercentage = 25;
  mProgressItem.color = R.color.blue;
  progressItemList.add(mProgressItem);
  // green span
  mProgressItem = new ProgressItem();
  mProgressItem.progressItemPercentage = 35;
  mProgressItem.color = R.color.green;
  progressItemList.add(mProgressItem);
  
  //white span
  mProgressItem = new ProgressItem();
  mProgressItem.progressItemPercentage = 20;
  mProgressItem.color =  R.color.white;
  progressItemList.add(mProgressItem);

  
  seekbar.initData(progressItemList);
  seekbar.invalidate();
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
}

2. CustomProgressBar.java


package com.android.customprogressbar;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.SeekBar;

public class CustomProgressBar extends SeekBar {

 private ArrayList mProgressItemsList;

 public CustomProgressBar(Context context) {
  super(context);
  mProgressItemsList = new ArrayList();
 }

 public CustomProgressBar(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

 public CustomProgressBar(Context context, AttributeSet attrs, int defStyle) {
  super(context, attrs, defStyle);
 }

 public void initData(ArrayList progressItemsList) {
  this.mProgressItemsList = progressItemsList;
 }

 @Override
 protected synchronized void onMeasure(int widthMeasureSpec,
   int heightMeasureSpec) {
  // TODO Auto-generated method stub
  super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 }

 protected void onDraw(Canvas canvas) {
  if (mProgressItemsList.size() > 0) {
   int progressBarWidth = getWidth();
   int progressBarHeight = getHeight();
   int thumboffset = getThumbOffset();
   int lastProgressX = 0;
   int progressItemWidth, progressItemRight;
   for (int i = 0; i < mProgressItemsList.size(); i++) {
    ProgressItem progressItem = mProgressItemsList.get(i);
    Paint progressPaint = new Paint();
    progressPaint.setColor(getResources().getColor(
      progressItem.color));

    progressItemWidth = (int) (progressItem.progressItemPercentage
      * progressBarWidth / 100);

    progressItemRight = lastProgressX + progressItemWidth;

    // for last item give right to progress item to the width
    if (i == mProgressItemsList.size() - 1
      && progressItemRight != progressBarWidth) {
     progressItemRight = progressBarWidth;
    }
    Rect progressRect = new Rect();
    progressRect.set(lastProgressX, thumboffset / 2,
      progressItemRight, progressBarHeight - thumboffset / 2);
    canvas.drawRect(progressRect, progressPaint);
    lastProgressX = progressItemRight;
   }
   super.onDraw(canvas);
  }

 }

}


2. ProgressItem.java
package com.android.customprogressbar;

public class ProgressItem {
 public int color;
 public float progressItemPercentage;
}


Download complete Source code : CustomProgress Bar

Hope , this will helps some one .
Enjoy Coding...   :)

Sunday 24 August 2014

Android navigation drawer tutorial | Android navigation drawer with activities | Android Sliding Navigation Drawer – Example

Hello Droid Guys
     Today,  I am going to share the tutorial of  "Android sliding navigation drawer". You also find many tutorial on Google which helps you to show navigation drawer but most of them are using fragment to do that. Here, are the few good tutorial which I follows:
Android Navigation Drawer
Navigation drawer activity

1. https://developer.android.com/design/patterns/navigation-drawer.html
2. http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

Here, I am going show sliding menu using activity. We can also achieve
the functionality of  Navigation drawer with activities.

This Android tutorial describes How to implement a navigation drawer using  Support Library the DrawerLayout API.

1. Create Drawer Layout :
            To create a navigation drawer, We first declare user interface with a
DrawerLayout as the root view of layout.

Inside the Drawer Layout, add one view that contains the main content for the
screen (your primary layout when the drawer is hidden) and another view that
contains the contents of the navigationdrawer. In this example, I am using a DrawerLayout
with two child. One a Relative layout with webView(the main content), and other
with a ListView for the navigation drawer. The webview is my activity content view.

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/drawer_layout"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >
    <!--
          main content
     -->

    <RelativeLayout

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:background="#ffffff" >

        <WebView

            android:id="@+id/webview"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:background="#ffffff" />

    </RelativeLayout>

    <!--
        navigation list item
    -->
    <FrameLayout

        android:id="@+id/content_frame"

        android:layout_width="match_parent"

        android:layout_height="match_parent" />

    <ListView

        android:id="@+id/left_drawer"

        android:layout_width="240dp"

        android:layout_height="match_parent"

        android:layout_gravity="left"

        android:background="#2A323D"

        android:cacheColorHint="#00000000"

        android:choiceMode="singleChoice" />



</android.support.v4.widget.DrawerLayout>


2. Initialize the Drawer List :
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);

mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
		GravityCompat.START);
// set up the drawer's list view with items and click listener
mDrawerList.setAdapter(new MenuDrawerListAdapter(this, menuItemTitles,
			Config.drawerMenuItemsIconIds));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());


3. Handle Navigation List click event :

/* The click listener for ListView in the navigation drawer */
public class DrawerItemClickListener implements
	ListView.OnItemClickListener {
	@Override
	public void onItemClick(AdapterView parent, View view, int position,
		long id) {
		switch (position) {
		case 0: {
		Intent main = new Intent(getApplicationContext(),
				MainActivity.class);
		startActivity(main);
		finish();
		break;
        	}
		case 1: {
		Intent list = new Intent(getApplicationContext(),
				ListActivity.class);
		startActivity(list);
		finish();
		break;
		}
			
		default:
		break;
         }
	}
}

Download Code : Navigation Drawer Demo

Hope this will help someone.
Enjoy Coding...   :)

Sunday 10 August 2014

Android Download Source code | Android Sample Project

Hello Friends,
  This is my small contribution , Now I am sharing the source code of all my android
  post or android tutorial at one place.


Android Tutorial Download Code
Android Custom Calendar Download Code
Android LinkedIn Integration Download Code
Android Crop Image in circular shape like gmail and facebook Download Code
Android facebook like left to right slide navigation Download Code
Android facebook and skype like animated splash screen Download Code
Google map V2 sample with draw polygon or draw geometry and save polygon Download Code
Android video Player Download Code
Android navigation drawer tutorial Download Code
Android Custom Horizontal progress bar |"N" level Horizontl Progress Bar Download Code

Sunday 20 July 2014

Android Splash Screen Example with Animation | Animated Splash Screen android

Hello Friends,
        Today, I am going to share the tutorial of android splash screen with animation.
With help of this tutorial you can easily implement the facebook like splash screen
or skype like splash screen.
                           
Android animated splash screen

1. Create an Android Project "SplashScreen"
2. Create an folder "anim" inside the res folder
3. Create two file inside the "anim" folder
      a. alpha.xml
   
         <?xml version="1.0" encoding="utf-8"?>

              <alpha
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:fromAlpha="0.0"
              android:toAlpha="1.0"
              android:duration="3000" />

     b. translate.xml
<?xml version="1.0" encoding="utf-8"?>

         <set

              xmlns:android="http://schemas.android.com/apk/res/android">
             <translate
                 xmlns:android="http://schemas.android.com/apk/res/android"
                 android:fromXDelta="0%"
                 android:toXDelta="0%"
                 android:fromYDelta="900%"
                 android:toYDelta="0%"
                 android:duration="2000"
                 android:zAdjustment="top" />
         </set>

4. inside your oncreate() called this method
 
public class SpalshScreenActivity extends Activity {

    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        StartAnimations();

    }
     ................
     ................

  }

      private void StartAnimations() {
    	Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
		anim.reset();
		LinearLayout l = (LinearLayout) findViewById(R.id.lin_lay);
		l.clearAnimation();
		l.startAnimation(anim);

		anim = AnimationUtils.loadAnimation(this, R.anim.translate);
		anim.reset();
		ImageView iv = (ImageView) findViewById(R.id.logo);
		iv.clearAnimation();
		iv.startAnimation(anim);

		anim = AnimationUtils.loadAnimation(this, R.anim.translate);
		anim.reset();
		LinearLayout l2 = (LinearLayout) findViewById(R.id.linear2);
		l2.setVisibility(View.VISIBLE);
		l2.clearAnimation();
		l2.startAnimation(anim);
    }


Download the code : Android animate splash sreen

Hope this will help someone
Enjoy Coding.... :)

ActiveAndroid Tutorial | ActiveAndroid: Android ORM base database |Getting Started with ActiveAndroid - Part1

ActiveAndrid :                                                                               
Active Android


ActiveAndroid is an ORM (object relational mapper) . Which allows you to save(insert)
and retrieve(read) SQLite database records without even writing a single SQL statement.
Each database record is wrapped neatly into a class with methods like save().
It is same a Java Hibernate. It also based on annotation like: @Column(name="Column")  for creating column and Table(name = "Table")  for creating table .

Getting started : 
A.Now here we are going to start integrating ActiveAndroid in your project.
    1. Download the ActiveAndroid library
    2. Now generate the ActiveAndroid.jar by executing ant in root folder
    3. If you are unable to generate the jar file then download it from here

 Now, we have ActiveAndroid.jar file.  Now, we can add it inside the "libs" folder of
Android Project.    

B. Configuring Android Project with ActiveAndroid :
    1. Open the AndroidManifest.xml file located at the root directory of your Android project.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.developer.solutions"
    android:versionCode="1"
    android:versionName="1.0" >
        <application
           android:name="com.activeandroid.app.Application"
           android:allowBackup="true"
           android:icon="@drawable/ic_launcher"
           android:label="@string/app_name"
           android:theme="@style/AppTheme" >
           <activity
             android:name=".MainActivity"
             android:label="@string/app_name"
             android:screenOrientation="landscape" >
             <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
          </activity>
        
         <meta-data android:name="AA_DB_NAME" android:value="Student.db" />
         <meta-data android:name="AA_DB_VERSION" android:value="1" />
        </application>
</manifest>


Note:  In your manifest.xml, if you are not using any Custom Application class then the application name points to the ActiveAndroid application class as we are doing above. But if you are using any Application levele custom class then your Custom Application class must extend com.activeandroid.app.Application instead of android.app.Application.

public class MyApplication extends com.activeandroid.app.Application { ...


And initialize and dispose ActiveAndroid in the Application class.

public class MyApplication extends com.activeandroid.app.Application {

    @Override
    public void onCreate() {
        super.onCreate();
        ActiveAndroid.initialize(this);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        ActiveAndroid.dispose();
    }
}

Note : If you want to create your db in a specific location inside your Sd Card then change below line in manifest.xml

<meta-data android:name="AA_DB_NAME" android:value="/sdcard/Student.db" />

<meta-data android:name="AA_DB_VERSION" android:value="1" />

Here, we are creating our database file inside the sd card root folder.
So that we can easily import it in Sqlite Browser .

Tuesday 8 July 2014

Android Google Glass Configuration | Glass Development Kit | Android Google Glass Setup | Android Google Glass Development -Part1

Hello Friend ,
    This is my first blog on Android Google Glass . Lats month Google launches
some awesome feature like:                                                          
         1. Android L Developer Preview
         2. Android Wear SDK
         3. Android TV Preview SDK
         4. Google glass


Today, I am going to share my small tutorial on Google glass which helps you in 
in Configuring the Google glass development environment in Eclipse.

Glass Development Kit :  First you need GDK
The Glass Development Kit (GDK) is an add-on to the Android SDK that lets you build Glassware that runs directly on Glass. 

Steps to setup Google Glass Development :
    1.Get the Android 4.4.2 (API 19) SDK and Glass Development Kit Preview 
       add-on from the Android SDK Manager. see the image 


   2. On Glass, turn on USB debugging (Settings > Device Info > Turn on debug).
   3. Import some GDK samples with the File > New Project > Android Sample Project menu.
   4. When you're ready to create a project for your own Glassware, use these settings:
- Minimum and Target SDK Versions: 19 (There is only one Glass version, 
           so minimum and target SDK are the same.)
- Compile with: Glass Development Kit Developer Preview
- Theme: None (ADT and Android Studio usually assign a theme automatically,
           even if you specify no theme, so remove the android:theme property from your manifest after
           creating a project.)

For more Detail Check this link
                                  https://developers.google.com/glass/develop/gdk/quick-start


2. Android Google Glass Development -Part2 - (coming soon)


Hope, this will helps someone.
Enjoy Coding..... :)

Sunday 15 June 2014

Android send emails | Android send emails w/t built-in mailing app | Android send emails from the background

Hello Friends,
                Today, I am sharing another important tutorial. While doing development
some times we came across to this requirement, "Sending emails to users" without
using any built-in mailing app(like: Gmail,Yahoo etc). In that time we normally depends
on web-service, we write a service in PHP or JAVA or .Net and the communicate b/w them.

But, know now no need to depends on web-service we can send the mail directly through
our java code.

This tutorial going to covers following features :

1. Sending email without using any built-in mailing app
2. Sending emails without User Intervention
3. Sending  emails to multiple users
4. Sending emails with attachment
5. Sending emails silently without any mail composer


Here are my code:

1. Download java mil.jar, activation.jar and additionnal.jar from below link :
        http://code.google.com/p/javamail-android/downloads/list          

2. Add this jar files in your project libs folder

3. MainActivity.java

package com.androiddeveloper.solutions.sendemail;

import java.io.File;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

/**
 * @author: Mukesh Y
 * @link: http://www.androiddevelopersolutions.com/
 */
public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ImageButton addImage = (ImageButton) findViewById(R.id.action_send_email);
  addImage.setOnClickListener(new View.OnClickListener() {
   public void onClick(View view) {
    new BackGroundAsyncTask().execute();
   }
  });

 }

 public class BackGroundAsyncTask extends AsyncTask {

  ProgressDialog prog_synprocess = new ProgressDialog(MainActivity.this);

  String statusMessage = "";

  @Override
  protected void onPostExecute(String status) {
   prog_synprocess.hide();
   Toast.makeText(MainActivity.this, status, Toast.LENGTH_LONG).show();

  }

  @Override
  protected void onPreExecute() {
   prog_synprocess.setCancelable(false);
   prog_synprocess.setProgressStyle(ProgressDialog.STYLE_SPINNER);
   prog_synprocess.setMessage("Sending...");
   prog_synprocess.show();
  }

  @Override
  protected String doInBackground(String... arg0) {

   try {
    statusMessage = sendLogFile();
   } catch (Exception e) {
    Log.e("Error", e.getMessage());
    statusMessage = "Error in updation";
   }
   return statusMessage;

  }
 }

 private String sendLogFile() {
  String statusMessage = "";
  Mail m = new Mail("dataworld.dw@gmail.com", "testtest");

  String[] toArr = { "mukesh421985@gmail.com" };
  m.setTo(toArr);
  m.setFrom("dataworld.dw@gmail.com");
  String email_subject = "Testing Send mail";
  m.setSubject(email_subject);
  m.setBody("PFA");

  try {
   String pathToMyAttachedFile = Environment
     .getExternalStorageDirectory()
     + File.separator
     + "Project.log";
   File file = new File(pathToMyAttachedFile);
   if (!file.exists() || !file.canRead()) {
    statusMessage = "File not found";
    return statusMessage;
   } else {
    m.addAttachment(file.getAbsolutePath());
   }
   if (m.send()) {
    statusMessage = "Email was sent successfully.";
   } else {
    statusMessage = "Email was not sent.";
   }
  } catch (Exception e) {
   // Toast.makeText(MailApp.this,
   // "There was a problem sending the email.",
   // Toast.LENGTH_LONG).show();
   Log.e("Send Mail", e.getMessage());
   statusMessage = "There was a problem sending the email.";
  }

  return statusMessage;
 }

}

2. Mail.java 

package com.androiddeveloper.solutions.sendemail;

import java.util.Date;
import java.util.Properties;

import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

/**
 * @author: Mukesh Y
 * @link: http://www.androiddevelopersolutions.com/
 */
public class Mail extends javax.mail.Authenticator {
 private String userName;
 private String password;

 private String[] to;
 private String from;

 private String portNumber;
 private String socketPortNumber;

 private String host;

 private String emailSubject;
 private String emailBody;

 private boolean auth;

 private boolean debuggable;

 private Multipart multipart;

 public Mail() {
  // default smtp server
  host = "smtp.gmail.com";
  
  // default smtp port
  portNumber = "465"; 
  // default socketfactory port
  socketPortNumber = "465";
  
  // username
  userName = ""; 
  password = ""; 
  
  // email sent from
  from = ""; 
  
  // email subject
  emailSubject = "";
  
  // email body
  emailBody = ""; 

  // debug mode on or off - default off
  debuggable = false; 
  
  // smtp authentication - default on
  auth = true; 

  multipart = new MimeMultipart();

  // There is something wrong with MailCap, javamail can not find a
  // handler for the multipart/mixed part, so this bit needs to be added.
  MailcapCommandMap mc = (MailcapCommandMap) CommandMap
    .getDefaultCommandMap();
  mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
  mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
  mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
  mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
  mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
  CommandMap.setDefaultCommandMap(mc);
 }

 public Mail(String user, String pass) {
  this();

  userName = user;
  password = pass;
 }

 public boolean send() throws Exception {
  Properties props = _setProperties();

  if (!userName.equals("") && !password.equals("") && to.length > 0
    && !from.equals("") && !emailSubject.equals("")
    && !emailBody.equals("")) {
   Session session = Session.getInstance(props, this);

   MimeMessage msg = new MimeMessage(session);

   msg.setFrom(new InternetAddress(from));

   InternetAddress[] addressTo = new InternetAddress[to.length];
   for (int i = 0; i < to.length; i++) {
    addressTo[i] = new InternetAddress(to[i]);
   }
   msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);

   msg.setSubject(emailSubject);
   msg.setSentDate(new Date());

   // setup message body
   BodyPart messageBodyPart = new MimeBodyPart();
   messageBodyPart.setText(emailBody);
   multipart.addBodyPart(messageBodyPart);

   // Put parts in message
   msg.setContent(multipart);

   // send email
   Transport.send(msg);

   return true;
  } else {
   return false;
  }
 }

 public void addAttachment(String filename) throws Exception {
  BodyPart messageBodyPart = new MimeBodyPart();
  FileDataSource source = new FileDataSource(filename);
  messageBodyPart.setDataHandler(new DataHandler(source));
  messageBodyPart.setFileName(filename);

  multipart.addBodyPart(messageBodyPart);
 }

 @Override
 public PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication(userName, password);
 }

 private Properties _setProperties() {
  Properties props = new Properties();

  props.put("mail.smtp.host", host);

  if (debuggable) {
   props.put("mail.debug", "true");
  }

  if (auth) {
   props.put("mail.smtp.auth", "true");
  }

  props.put("mail.smtp.port", portNumber);
  props.put("mail.smtp.socketFactory.port", socketPortNumber);
  props.put("mail.smtp.socketFactory.class",
    "javax.net.ssl.SSLSocketFactory");
  props.put("mail.smtp.socketFactory.fallback", "false");

  return props;
 }

 // the getters and setters
 public String getBody() {
  return emailBody;
 }

 public void setBody(String _body) {
  this.emailBody = _body;
 }

 // more of the getters and setters …..
 public void setTo(String[] toArr) {
  this.to = toArr;
 }

 public void setFrom(String string) {
  this.from = string;
 }

 public void setSubject(String string) {
  this.emailSubject = string;
 }
}


Hope this will helps some one.
Enjoy coding... cheers :)

Friday 13 June 2014

ListView setOnItemClickListener not working by adding button | ListView setOnItemClickListener issue

Hello Friends,
                    Today, I found another issue with Android  ListView.OnItemClickListner.
Actually I have a list view with items image and text and when I am clicking on it then ListView.OnItemClickListner called and all working fine. But when I added a
button or toggle button(android switch) in existing one then in this case the ListView.OnItemClickListner stop working.

This are the step to reproduce:

1) I have a ListView with an Image and textview.
2) I set ListView.OnItemClickListner. When I run my project It's show my ListView.
3) When I click on Listview It's working fine.
4) Then I added one more item in my item.xml file i.e:added    a button
5) Then When I click on Listview It's not working.
6) Then I removed the added Button from the item.xml and run  my project again when
     I click ListView It' work
7) What wrong ?


Then I figure out the problem by adding the following two line of code in my Button view.

android:focusable="false"
android:focusableInTouchMode="false"

Hope this will helpfull for some one. Enjoy Coding....... Cheers :)

 

Copyright @ 2013 Android Developers Blog.