Thursday, 11 December 2014

Complete JSON parsing in Android Application for Beginners


JSONHandler.java

package com.rakesht.json;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

/**
 * Adds the ability to JSON Lib (in Android) to parse JSON data into Bean Class. It
 * is based on Android's (org.json.*)
 *
 * @author
 *
 */
public class JSONHandler {

    String TAG = "My App";
   



    /**
     * Parse a JSONObject and create instance of BeanClass. The JSONObject can internally contain
     * any kind of Objects and Arrays. The field names of BeanClass should exactly match as the JSON
     * property name.
     *
     * TODO:
     * 1. Support JSONArray as initial argument. Note: JSONArray can be
     * intermediate argument during the recursion process.
     * 2. Support primitive/custom Array. At present it supports only ArrayList
     * 3. Support custom data types which doesn't belong to -same Base Package-
     * 
     * @param jsonStr JSON String
     * @param beanClass Java Bean class
     * @param basePackage Base package name which includes all Bean classes
     * @return Instance of of the Bean Class with parsed value embedded.
     * @throws Exception
     */
    public Object parse(String jsonStr, Class beanClass, String basePackage) throws Exception
    {
        /*
         * This will be a recursive method
         * 1. Read all member variables of BeanClass
         * 2. Read values from JSON
         * 3. If it is an ArrayList, call parse() with its type class
         * 4. If it is a Custom Class, call parse() with its type class
         */
        Object obj = null;
        JSONObject jsonObj = new JSONObject(jsonStr);
       
        if(beanClass == null){
            p("Class instance is Null");
            return null;
        }
       
        p("Class Name: "+ beanClass.getName());
        p("Package: "+ beanClass.getPackage().getName());
        // Read Class member fields
        Field[] props = beanClass.getDeclaredFields();
       
        if(props == null || props.length == 0)
        {
            /*
             * This class has no fields
             */
//            p("Class "+ beanClass.getName() +" is empty");
            return null;
        }
       
        // Create instance of this Bean class
        obj = beanClass.newInstance();
        // Set value of each member variable of this object
        for(int i=0; i<props.length; i++)
        {
            String fieldName = props[i].getName();
            // Filter public and static fields
            if(props[i].getModifiers() == (Modifier.PUBLIC | Modifier.STATIC))
            {
                // Skip static fields
//                p("Modifier: "+ props[i].getModifiers());
//                p("Static Field: "+ fieldName +" ....Skip");
                continue;
            }
           
            // Date Type of Field
            Class type = props[i].getType();
            String typeName = type.getName();
           
            /*
             * If the type is not primitive- [int, long, java.lang.String, float, double] and ArrayList/List
             * Check for Custom type 
             */
            if(typeName.equals("int")) // int type
            {
//                p("Primitive Field: "+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                @SuppressWarnings("unchecked")
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getInt()
                try{
                    m.invoke(obj, jsonObj.getInt(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(typeName.equals("long"))
            {
//                p("Primitive Field: "+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getLong()
                try{
                    m.invoke(obj, jsonObj.getLong(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(typeName.equals("java.lang.String"))
            {
//                p("Primitive Field: >>>"+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getString()
                try{
                    m.invoke(obj, jsonObj.getString(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(typeName.equals("double"))
            {
//                p("Primitive Field: "+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getDouble()
                try{
                    m.invoke(obj,  jsonObj.getDouble(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(type.getName().equals(List.class.getName()) ||
                    type.getName().equals(ArrayList.class.getName())){
                // ArrayList
                // Find out the Generic i.e. Class type of its content
//                p("ArrayList Field: "+ fieldName + " Type: "+ type.getName() +" field: "+ props[i].toGenericString());
                String generic = props[i].getGenericType().toString();
//                p("ArrayList Generic: "+ generic);
               
                if(generic.indexOf("<") != -1){
                    // extract generic from <>
                    String genericType = generic.substring(generic.lastIndexOf("<")+1, generic.lastIndexOf(">"));
                    if(genericType != null){
                        // Further refactor it
                        //showClassDesc(Class.forName(genericType), basePackage);
                        // It is a JSON Array- loop through the Array and create instances
//                        p("Generic Type: "+ genericType);
                        JSONArray array = null;
                        try{
                            array = jsonObj.getJSONArray(fieldName);
                        }catch(Exception ex){
//                            p("Error: "+ ex.toString());
                            array = null;
                        }
                        /*
                         * If it is of Primitive types, loop through the JSON Array and read tem into an
                         * ArrayList
                         */
                        if(array == null)
                            continue;
//                        p("JSON Array Size: "+ array.length());
                        ArrayList arrayList = new ArrayList();
                        for(int j=0; j<array.length(); j++)
                        {
                            arrayList.add(parse(array.getJSONObject(j).toString(), Class.forName(genericType), basePackage));
                        }
                       
                        // Set the value
                        Class[] parms = {type};
                        Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                        m.setAccessible(true);
                        m.invoke(obj,  arrayList);
                    }
                   
                }
                else{
                    // No generic defined
                    // ArrayList<Generic_Type>
                    generic = null;
                }
            }
            else if(typeName.startsWith(basePackage)){
                // Custom Class
                // Handle Custom class
                // Get associated Set method- Need to mention Method Argument
//                p("Custom class Field: "+ fieldName + " Type: "+ typeName);
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- do a recursive Call to read values of this custom class
                try{
                    JSONObject customObj = jsonObj.getJSONObject(fieldName);
                    if(customObj != null)
                        m.invoke(obj, parse(customObj.toString(), type, basePackage));
                }catch(JSONException ex){
//                    p("Error: "+ ex.toString());
                    // TODO: set default value
                }
            }
            else{
                // Skip it
//                p("Skip, Field: "+ fieldName +" Type: "+ typeName +" SimpleTypeName: "+  type.getSimpleName());
            }
        }
        return obj;
    }
   
    /**
     * Generate Get/Set method of BeanClass fields
     * @param fieldName
     * @param type
     * @return
     */
    private String getBeanMethodName(String fieldName, int type){
        if(fieldName == null || fieldName == "")
            return "";
        String method_name = "";
        if(type == 0)
            method_name = "get";
        else
            method_name = "set";
        method_name += fieldName.substring(0, 1).toUpperCase();
       
        if(fieldName.length() == 1)// Field name is of 1 char
            return method_name;
       
        method_name += fieldName.substring(1);
        return method_name;
    }
   
    private void p(String msg){
        //System.out.println(msg);
//        Log.v(TAG, "# "+ msg);
    }
}

**********************************************************************************

package com.rakesht.json;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

import android.util.Log;

public class MyHttpConnection {
   
    private HttpClient httpClient;
    private HttpPost httpPost;
    private HttpResponse httpResponse;
    private InputStream inputStream;
    private BufferedReader bufferedReader;
    private String returnData=null;
   
    public MyHttpConnection(){
       
    }
   
    public static String makeConnection(String urlString){
        String urlStr = urlString.replaceAll(" ", "%20").replaceAll("'", "%27");
        Log.d("System out", "Url==> "+ urlStr);
        URL url;
        HttpURLConnection connection;
        StringBuffer buffer = null;
       
        try {
            url = new URL(urlStr);
            connection = (HttpURLConnection)url.openConnection();
            buffer = new StringBuffer();
            InputStreamReader inputReader = new InputStreamReader(connection.getInputStream());
            BufferedReader buffReader = new BufferedReader(inputReader);
            String line = "";
            do {
                line = buffReader.readLine();
                if (line != null)
                    buffer.append(line);
            } while (line != null);
           
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
        Log.d("System out", "Response==> "+ buffer.toString());
        return buffer.toString();
    }   
    public String excutePost(String url, String urlParameters)
      {
        URL url1;
        HttpURLConnection connection = null; 
        try {
          //Create connection
          url1 = new URL(url);
          connection = (HttpURLConnection)url1.openConnection();
          connection.setRequestMethod("POST");
          connection.setRequestProperty("Content-Type",
               "application/json");
               
          connection.setRequestProperty("Content-Length", "" +
                   Integer.toString(urlParameters.getBytes().length));
          connection.setRequestProperty("Content-Language", "en-US"); 
               
          connection.setUseCaches (false);
          connection.setDoInput(true);
          connection.setDoOutput(true);

          //Send request
          DataOutputStream wr = new DataOutputStream (
                      connection.getOutputStream ());
          wr.writeBytes (urlParameters);
          wr.flush ();
          wr.close ();

          //Get Response   
          InputStream is = connection.getInputStream();
          BufferedReader rd = new BufferedReader(new InputStreamReader(is));
          String line;
          StringBuffer response = new StringBuffer();
          while((line = rd.readLine()) != null) {
            response.append(line);
            response.append('\r');
          }
          rd.close();
          return response.toString();

        } catch (Exception e) {

          e.printStackTrace();
          return null;

        } finally {

          if(connection != null) {
            connection.disconnect();
          }
        }
      }
    public String ParsedData(String GETURL, String Function){
       
        try{
            Log.d("System out", "Function in parsed Data "+Function);
            httpClient = new DefaultHttpClient();
            httpPost = new HttpPost(GETURL);
            httpPost.setEntity(new StringEntity(Function));
            httpResponse = httpClient.execute(httpPost);
            inputStream = httpResponse.getEntity().getContent();
            bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line = null;
            StringBuffer buffer = new StringBuffer();
            do{
                line = bufferedReader.readLine();
                Log.d("System out", "line "+line);
                if(line!=null){
                    buffer.append(line);
                }
            }while(line!=null);
            returnData = buffer.toString();
            bufferedReader.close();
            buffer = null;
        }catch (Exception e) {
            // TODO: handle exception
            returnData = null;
            Log.d("System out", "Error in ParsedData "+e.getMessage());
        }
        return returnData;
    }
}

**********************************************************************************


package com.rakesht.json;

import java.io.Serializable;

@SuppressWarnings("serial")
public class JSONParserDataActivity implements Serializable {

    private String Id, Name,Description, Image,
            Country, Latitude, Longitude, price;
    private String Includes, Excludes, Name, Id, Image;
     private String Id,Id,Id,Image,ImageCaption,hpCreatedDate;
    private String rms;
    private String facilityId,facName,facDescription,facImage,status,dateadded,datemodified;

    public String getFacilityId() {
        return facilityId;
    }

    public void setFacilityId(String facilityId) {
        this.facilityId = facilityId;
    }

    public String getFacName() {
        return facName;
    }

    public void setFacName(String facName) {
        this.facName = facName;
    }

    public String getFacDescription() {
        return facDescription;
    }

    public void setFacDescription(String facDescription) {
        this.facDescription = facDescription;
    }

    public String getFacImage() {
        return facImage;
    }

    public void setFacImage(String facImage) {
        this.facImage = facImage;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDateadded() {
        return dateadded;
    }

    public void setDateadded(String dateadded) {
        this.dateadded = dateadded;
    }

    public String getDatemodified() {
        return datemodified;
    }

    public void setDatemodified(String datemodified) {
        this.datemodified = datemodified;
    }

    public void setId(String Id) {
        this.Id = Id;
    }

    public String getId() {
        return Id;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public String getName() {
        return Name;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    public String getDescription() {
        return Description;
    }

    public void setImage(StringImage) {
        this.Image = Image;
    }

    public String getImage() {
        return Image;
    }

    public void setCountry(String Country) {
        this.Country = Country;
    }

    public String getCountry() {
        return Country;
    }

    public void setLatitude(String Latitude) {
        this.Latitude = Latitude;
    }

    public String getLatitude() {
        return Latitude;
    }

    public void setLongitude(String Longitude) {
        this.Longitude = Longitude;
    }

    public String getLongitude() {
        return Longitude;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getPrice() {
        return price;
    }

    public void setIncludes(String Includes) {
        this.Includes = Includes;
    }

    public String getIncludes() {
        return Includes;
    }

    public void setExcludes(String Excludes) {
        this.Excludes = hrExcludes;
    }

    public String getExcludes() {
        return Excludes;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public String getName() {
        return Name;
    }
   
}

**********************************************************************************
SigninActivity.java

package com.rakesht;

import java.text.NumberFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.json.MyHttpConnection;

public class SigninActivity extends Activity implements OnClickListener{
    Intent i;
    Button Btn_signin,Btn_signup;
    TextView Txtv_forgot_password,Txtv_auto_login;
    EditText Edt_signin_email,Edt_signin_password;
    ImageView Imgv_canceltext_email,Imgv_canceltext_pass;
    CheckBox chkbx_autologin;
    LinearLayout lay_offer;
    private String username,password;
    String response = "";
    private ProgressDialog progressDialog;
    private boolean flag_response = false;
    ScrollView sign_in;
    private Boolean b1 = true, b2 = true, b3 = true, b4 = true, b5 = true;
    private NumberFormat nf;
   
    public final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
              "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
              "\\@" +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
              "(" +
              "\\." +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
              ")+"
          );
    private Pattern pattern;
      private Matcher matcher;
    private SharedPreferences settings;
    private Editor editor;
      private static final String PASSWORD_PATTERN =
          "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
     
     
     
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sign_in);
        init();
        settings = getSharedPreferences("My_Pref", 0);
        editor=settings.edit();
        username=settings.getString("uname", "");
        password=settings.getString("pass", "");
        Log.i("System out","User name---2 : "+username);
        Log.i("System out","Password----2 : "+password);
       
//        if(((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).isActive())
//        {
//            lay_offer.setVisibility(View.INVISIBLE);
//        }
//        else
//        {
//            lay_offer.setVisibility(View.VISIBLE);
//        }
       
         if (username=="" || password=="")
            {
              
            }
            else
            {
                Log.i("System out","User name---3 : "+username);
                Log.i("System out","Password----3 : "+password);
               
                Edt_signin_email.setText(username);
                Edt_signin_password.setText(password);
                chkbx_autologin.setChecked(true);
                chkbx_autologin.setButtonDrawable(R.drawable.checkbox_selected_login);
               
            }

        //this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
       
       
        settings = getSharedPreferences("My_Pref", 0);
        editor=settings.edit();
      
       
        chkbx_autologin.setOnCheckedChangeListener(new OnCheckedChangeListener()
        {
           
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                if(isChecked)
                {
//                    chkbx_autologin.setBackgroundResource(R.drawable.checkbox_selected_login);
                    chkbx_autologin.setButtonDrawable(R.drawable.checkbox_selected_login);
                }
                else
                {
                    chkbx_autologin.setButtonDrawable(R.drawable.checkbox_login);
                }
               
            }
        });
       
       
        final View activityRootView = findViewById(R.id.activityRoot);
       

       
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener()
        {
            @Override
            public void onGlobalLayout()
            {
                int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
                if (heightDiff > 100)
                {
                    lay_offer.setVisibility(View.INVISIBLE);
                }
                else
                {
                    lay_offer.setVisibility(View.VISIBLE);
                }
             }
        });
       
       
    }
   
   
   
   
   
//    public interface OnKeyboardVisibilityListener {
//
//        void onVisibilityChanged(boolean visible);
//    }
//
//    public final void setKeyboardListener(final OnKeyboardVisibilityListener listener) {
//        final View activityRootView = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
//        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
//
//            private boolean wasOpened;
//
//        private final Rect r = new Rect();
//
//            @Override
//            public void onGlobalLayout() {
//                activityRootView.getWindowVisibleDisplayFrame(r);
//
//                int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);
//                boolean isOpen = heightDiff > 100;
//                if (isOpen == wasOpened) {
//                    lay_offer.setVisibility(View.VISIBLE);
//                    return;
//                }
//
//                else
//                {
//                    lay_offer.setVisibility(View.INVISIBLE);
//                }
//                wasOpened = isOpen;
//                listener.onVisibilityChanged(isOpen);
//            }
//        });
//    }
   
   
    public void init(){
       
       
        Btn_signin=(Button)findViewById(R.id.btn_signin);
        Btn_signup=(Button)findViewById(R.id.btn_signup);
        Txtv_forgot_password=(TextView)findViewById(R.id.tv_forgot_password);
        Edt_signin_email=(EditText)findViewById(R.id.edt_signin_email);
        Edt_signin_password=(EditText)findViewById(R.id.edt__signin_password);
        chkbx_autologin=(CheckBox)findViewById(R.id.imgv_auto_login);
        Imgv_canceltext_email=(ImageView)findViewById(R.id.imgv_cancel_email);
        Imgv_canceltext_pass=(ImageView)findViewById(R.id.imgv_cancel_pass);
        Btn_signin.setOnClickListener(this);
        Btn_signup.setOnClickListener(this);
        Txtv_forgot_password.setOnClickListener(this);
        chkbx_autologin.setOnClickListener(this);
        Imgv_canceltext_email.setOnClickListener(this);
         Imgv_canceltext_pass.setOnClickListener(this);
         Edt_signin_email.setOnClickListener(this);
         Edt_signin_password.setOnClickListener(this);
         sign_in=(ScrollView)findViewById(R.id.sign_in);
         lay_offer=(LinearLayout)findViewById(R.id.lay_offer);
         Edt_signin_email.addTextChangedListener(new TextWatcher()
         {
                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b1) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_canceltext_email.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

         Edt_signin_email.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b1 = false;
                        Imgv_canceltext_email.setVisibility(View.GONE);
                        String st = Edt_signin_email.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Edt_signin_email.setText(st);
                        }
                    } else {
                        b1 = true;
                        String st = Edt_signin_email.getText().toString();
                        if (st.equals("")) {
                            Imgv_canceltext_email.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
       
       
         Edt_signin_password.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b2) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_canceltext_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

         Edt_signin_password.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b2 = false;
                        Imgv_canceltext_pass.setVisibility(View.GONE);
                        String st = Edt_signin_password.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Edt_signin_password.setText(st);
                        }
                    } else {
                        b2 = true;
                        String st = Edt_signin_password.getText().toString();
                        if (st.equals("")) {
                            Imgv_canceltext_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
       
       
       
    }
   
    public void callDialog() {
        progressDialog = ProgressDialog.show(SigninActivity.this, null, "Loading...");
        progressDialog.setCancelable(true);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                    getData();
            }
        }).start();
    }
   
    public void getData() {

        String signinemail = Edt_signin_email.getText().toString();
        String signinpassword = Edt_signin_password.getText().toString();
       
        String url="http://100.101.130.111/rakesh/json.php?action=login&userEmail="+signinemail+"&userPass="+signinpassword;

        Log.i("System out","url : "+url);
        response = MyHttpConnection.makeConnection(url);
        Log.i("System out","Response : "+response);
       
        if(response != null)
        {
           
            flag_response = true;
        }else {
            flag_response = false;
        }
        handler.sendEmptyMessage(0);
    }
   
    Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if (progressDialog != null) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
                if (flag_response) {
                   
                    RegisterNLJson();
                }else {
                    Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
                }
            }
        };
    };
   
   
    public void RegisterNLJson() {
        JSONArray jsonArray;
        JSONObject jsonObject;
       
        try {
        jsonArray = new JSONArray(response);
       
        jsonObject = jsonArray.getJSONObject(0);
        if(jsonObject.has("status"))
        {
            String status=jsonObject.getString("status");
            Toast.makeText(getApplicationContext(), status, Toast.LENGTH_SHORT).show();
        }   
        else
        {
            Toast.makeText(getApplicationContext(), " Successfully Login", Toast.LENGTH_SHORT).show();
            editor.putString("userid", jsonObject.getString("userId"));
            editor.putString("userFirstName", jsonObject.getString("userFirstName"));
            editor.putString("userLastName", jsonObject.getString("userLastName"));
            editor.putString("userPhone", jsonObject.getString("userPhone"));
            editor.putString("userEmail", jsonObject.getString("userEmail"));
            editor.putString("userPass", jsonObject.getString("userPass"));
            editor.putString("userAddress", jsonObject.getString("userAddress"));
            editor.putString("userCity", jsonObject.getString("userCity"));
            editor.putString("userState", jsonObject.getString("userState"));
            editor.putString("userZip", jsonObject.getString("userZip"));
            editor.putString("userCountry", jsonObject.getString("userCountry"));
            editor.commit();

            i=new Intent(this,itemActivity.class);
            startActivity(i);
            //SigninActivity.this.finish();
        }   
           
//        SigninActivity.this.finish();
       
        }
        catch (JSONException e)
        {
            e.printStackTrace();
        }
       
    }
   
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       
        String signinemail = Edt_signin_email.getText().toString();
        String signinpassword = Edt_signin_password.getText().toString();
       
        if(v==Btn_signin)
        {
            if(signinemail.equals("") || signinpassword.equals(""))
            {
                if (signinemail.equals(""))
                {
                    Toast.makeText(SigninActivity.this, "Please enter email id",    Toast.LENGTH_LONG).show();

                }
               
                /*else if (signinemail.length()>0)
                {
                    Imgv_canceltext_email.setVisibility(View.VISIBLE);

                }*/
                else if (signinpassword.equals("")||signinpassword.length()<6)
                {
                    Toast.makeText(SigninActivity.this, "Please enter password",Toast.LENGTH_LONG).show();

                }
               
                else if (signinpassword.length()<6)
                {
                    Toast.makeText(SigninActivity.this, "Please enter password with minimum 6 character",Toast.LENGTH_LONG).show();

                }
               
               
            }
            else if (!checkEmail(signinemail))
            {
                Toast.makeText(SigninActivity.this, "Please enter valid email id",Toast.LENGTH_LONG).show();
            }
           
            /*else if(v==Edt_signin_email)
            {
                Imgv_canceltext_email.setVisibility(View.VISIBLE);
            }
            else if(v==Edt_signin_password)
            {
                Imgv_canceltext_pass.setVisibility(View.VISIBLE);
            }*/
           
            else
            {
                if(chkbx_autologin.isChecked())
                {
                    editor.putBoolean("remember", true);
                    editor.putString("username", signinemail);
                    editor.putString("password", signinpassword);
                    editor.putString("uname", signinemail);
                    editor.putString("pass", signinpassword);
                    editor.commit();
                }
               
                if(chkbx_autologin.isChecked()==false)
                {
                    editor.remove("remember");
                    editor.remove("username");
                    editor.remove("password");
                    editor.remove("uname");
                    editor.remove("pass");
                    editor.commit();
                }
                callDialog();
            }
           
           
        }
       
       
        else if(v==Imgv_canceltext_email)
        {
            Edt_signin_email.setText("");
        }
       
        else if(v==Imgv_canceltext_pass)
        {
            Edt_signin_password.setText("");
        }
       
        /*else if(v==chkbx_autologin)
        {
            if(chkbx_autologin.isChecked())
            {
                    chkbx_autologin.setButtonDrawable(R.drawable.checkbox_selected_login);
            }
            else
            {
                chkbx_autologin.setButtonDrawable(R.drawable.checkbox_login);
            }
        }*/
        else if(v==Btn_signup)
        {
            i=new Intent(this,SignupActivity.class);
            startActivity(i);
            //SigninActivity.this.finish();
        }
        else if(v==Txtv_forgot_password)
        {
            i=new Intent(this,ForgotPasswordActivity.class);
            startActivity(i);
            //SigninActivity.this.finish();
        }
       
       
       
    }

   
   
   
   
   
   
    private boolean checkEmail(String email) {
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }
   
     public SigninActivity()
     {
          pattern = Pattern.compile(PASSWORD_PATTERN);
      }
      public boolean validate(String signinpassword)
      {
          matcher = pattern.matcher(signinpassword);
          return matcher.matches();
      }

   
     /*@Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                // Finish activity on back button
//                this.finish();
                overridePendingTransition(R.anim.slide_in_left,
                        R.anim.slide_out_right);
            }
            return super.onKeyDown(keyCode, event);
        }
    */     
     
}

**********************************************************************************







SignupActivity.java



package com.r;akesht

import java.util.ArrayList;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.json.MyHttpConnection;

public class SignupActivity extends Activity implements OnClickListener{
    Intent i;
    Button btn_signup_submit,btn_signup_cancel;
    ImageView Imgv_txtclear_fname,Imgv_txtclear_lname,Imgv_txtclear_email,Imgv_txtclear_phone,
    Imgv_txtclear_pass,Imgv_txtclear_confpass;
    TextView Tv_signup_back, Tv_signup_header;
    EditText Tv_first_name,Tv_last_name,Tv_phone,Tv_email,Tv_password,Tv_confirm_password;
    String response = "",firstname,lastname,email,phone,password,confirmpassword,mid;
    private ProgressDialog progressDialog;
    private boolean flag_response = false, b1 = true, b2 = true, b3 = true, b4 = true, b5 = true,b6=true;
   
//    Boolean update = false;
//    DBAdapter db;
    ArrayList<HashMap<String, String>> userdetail;
    ArrayAdapter ayArrayAdapter;
    String phonenoStr = "^[+][0-9]{10,13}$";
//     AlertDialog.Builder builder = new AlertDialog.Builder(this);
     public final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
              "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
              "\\@" +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
              "(" +
              "\\." +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
              ")+"
          );
   
     private Pattern pattern;
      private Matcher matcher;
    private SharedPreferences settings;
    private Editor editor;
      private static final String PASSWORD_PATTERN =
//         "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
      "((?=.*[@#$%]).{6,20})";
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
       setContentView(R.layout.sign_up);
      
       //this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
       init();
      
       settings = getSharedPreferences("My_Pref", 0);
        editor=settings.edit();
      
      
    }

    public void  init(){
       
        btn_signup_submit=(Button)findViewById(R.id.btn_submit);
           btn_signup_cancel=(Button)findViewById(R.id.btn_cancel);
//           Tv_signup_header=(TextView)findViewById(R.id.txtheaderResTitle);
          
           Tv_first_name=(EditText)findViewById(R.id.edt_signup_firstname);
           Tv_last_name=(EditText)findViewById(R.id.edt_signup_lastname);
           Tv_phone=(EditText)findViewById(R.id.edt_signup_phone);
           Tv_email=(EditText)findViewById(R.id.edt_signup_email);
           Tv_password=(EditText)findViewById(R.id.edt_signup_password);
           Tv_confirm_password=(EditText)findViewById(R.id.edt_signup_confirm_pass);
           Imgv_txtclear_fname=(ImageView)findViewById(R.id.imgv_cancel_fname);
           Imgv_txtclear_lname=(ImageView)findViewById(R.id.imgv_cancel_lname);
           Imgv_txtclear_email=(ImageView)findViewById(R.id.imgv_cancel_email);
           Imgv_txtclear_phone=(ImageView)findViewById(R.id.imgv_cancel_phone);
           Imgv_txtclear_pass=(ImageView)findViewById(R.id.imgv_cancel_pass);
           Imgv_txtclear_confpass=(ImageView)findViewById(R.id.imgv_cancel_confpass);
          
//           Tv_signup_header.setText("Sign Up");
//           Tv_signup_back=(TextView)findViewById(R.id.back);
//           Tv_signup_back.setVisibility(View.GONE);
           btn_signup_submit.setOnClickListener(this);
           btn_signup_cancel.setOnClickListener(this);
           Imgv_txtclear_fname.setOnClickListener(this);
           Imgv_txtclear_lname.setOnClickListener(this);
           Imgv_txtclear_email.setOnClickListener(this);
           Imgv_txtclear_phone.setOnClickListener(this);
           Imgv_txtclear_pass.setOnClickListener(this);
           Imgv_txtclear_confpass.setOnClickListener(this);
         
          
           Tv_first_name.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b1) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_fname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_fname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_first_name.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b1 = false;
                        Imgv_txtclear_fname.setVisibility(View.GONE);
                        String st = Tv_first_name.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_first_name.setText(st);
                        }
                    } else {
                        b1 = true;
                        String st = Tv_first_name.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_fname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_fname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           
           Tv_last_name.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b2) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_lname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_lname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_last_name.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b2 = false;
                        Imgv_txtclear_lname.setVisibility(View.GONE);
                        String st = Tv_last_name.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_last_name.setText(st);
                        }
                    } else {
                        b2 = true;
                        String st = Tv_last_name.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_lname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_lname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_phone.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b3) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_phone.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_phone.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_phone.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b3 = false;
                        Imgv_txtclear_phone.setVisibility(View.GONE);
                        String st = Tv_phone.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_phone.setText(st);
                        }
                    } else {
                        b3 = true;
                        String st = Tv_phone.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_phone.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_phone.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_email.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b4) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_email.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_email.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b4 = false;
                        Imgv_txtclear_email.setVisibility(View.GONE);
                        String st = Tv_email.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_email.setText(st);
                        }
                    } else {
                        b4 = true;
                        String st = Tv_email.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_email.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_password.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b5) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_password.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b5 = false;
                        Imgv_txtclear_pass.setVisibility(View.GONE);
                        String st = Tv_password.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_password.setText(st);
                        }
                    } else {
                        b5 = true;
                        String st = Tv_password.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_confirm_password.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b6) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_confpass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_confpass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_confirm_password.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b6 = false;
                        Imgv_txtclear_confpass.setVisibility(View.GONE);
                        String st = Tv_confirm_password.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_confirm_password.setText(st);
                        }
                    } else {
                        b6 = true;
                        String st = Tv_confirm_password.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_confpass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_confpass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
          
          
    }
   
   
    public void callDialog() {
        progressDialog = ProgressDialog.show(SignupActivity.this, null, "Loading...");
        progressDialog.setCancelable(true);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                    getData();
            }
        }).start();
    }
   
    public void getData() {

        firstname=Tv_first_name.getText().toString();
        lastname=Tv_last_name.getText().toString();
        email=Tv_email.getText().toString();
        phone=Tv_phone.getText().toString();
        password=Tv_password.getText().toString();
       
//        String url="http://100.101.130.200/rakesht/json.php?action=Registernewsletter&json=[{\"nlSubscriberFN\":\""+firstname+"\",\"nlSubscriberLN\":\""+lastname+"\",\"nlSubscriberEmail\":\""+email+"\",\"age\":\""+age+"\",\"country\":\""+country+"\",\"sex\":\""+gender+"\"}]";
        String url="http://100.101.130.200/rakesht/json.php?action=insertusers&json=[{\"userFirstName\":\""+firstname+"\",\"userLastName\":\""+lastname+"\",\"userPhone\":\""+phone+"\",\"userEmail\":\""+email+"\",\"userPass\":\""+password+"\"}]";
//        String url="http://100.101.130.200/rakesht/json.php?action=insertusers&json=[{%22userFirstName%22:%22a%22,%22userLastName%22:%22b%22,%22userPhone%22:%229876543214%22,%22userEmail%22:%22abc@gmail.com%22,%22userPass%22:%22abc%22}]";
       

        response =MyHttpConnection.makeConnection(url);
        Log.i("System out","Response : "+response);

        if(response != null){
            flag_response = true;
        }else {
            flag_response = false;
        }
        handler.sendEmptyMessage(0);
    }
   
    Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if (progressDialog != null) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
                if (flag_response) {
                   
                    RegisterNLJson();
                }else {
                    Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
                }
            }
        };
    };
   
   
    public void RegisterNLJson() {
        JSONArray jsonArray;
        JSONObject jsonObject;
       
        try {
        jsonArray = new JSONArray(response);
       
        jsonObject = jsonArray.getJSONObject(0);
        Log.v("System out","Response : in fun"+jsonObject);
        String status=jsonObject.getString("userId");
       
        if(status!=null)
        {
        Log.v("System out","Response : in status"+status);
        Toast.makeText(getApplicationContext(), "Signup successfully.", Toast.LENGTH_SHORT).show();
       
        editor.putString("uname", Tv_email.getText().toString());
        editor.putString("pass", Tv_password.getText().toString());
        editor.commit();
       
        i=new Intent(this,SigninActivity.class);
        startActivity(i);
//        SignupActivity.this.finish();
        }else{
            Toast.makeText(getApplicationContext(), status, Toast.LENGTH_SHORT).show();
        }
           
       
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
   
   
   
   
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       
         String firstname=Tv_first_name.getText().toString();
            String lastname=Tv_last_name.getText().toString();
            String phone=Tv_phone.getText().toString();
            String email=Tv_email.getText().toString();
            String password=Tv_password.getText().toString();
            String confirmpassword=Tv_confirm_password.getText().toString();
           
           
             if(v==btn_signup_cancel){
//                SignupActivity.this.finish();
                i=new Intent(this,SigninActivity.class);
                startActivity(i);
            }
           
             else if(v==Imgv_txtclear_fname){
                 Tv_first_name.setText("");
               
             }
             else if(v==Imgv_txtclear_lname){
                 Tv_last_name.setText("");
             }
             else if(v==Imgv_txtclear_email){
               
                 Tv_email.setText("");
               
             }
             else if(v==Imgv_txtclear_phone){
                 Tv_phone.setText("");
             }
             else if(v==Imgv_txtclear_pass){
                 Tv_password.setText("");
             }
             else if(v==Imgv_txtclear_confpass){
                 Tv_confirm_password.setText("");
             }
       
             else    if(v==btn_signup_submit){
           
           
            if (firstname.equals("") || lastname.equals("")
                    || phone.equals("")||email.equals("")|| password.equals("")|| confirmpassword.equals("")) {
                if (firstname.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide first name",
                            Toast.LENGTH_LONG).show();

                }
                else if (lastname.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide last name",
                            Toast.LENGTH_LONG).show();

                }
               
               
                else if (email.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide email id",
                            Toast.LENGTH_LONG).show();

                }
                /*else if (!checkEmail(email)) {
                    Toast.makeText(SignupActivity.this, "Please provide valid email id",
                            Toast.LENGTH_LONG).show();
                }*/
               
               
               
                else if (phone.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide phone no",
                            Toast.LENGTH_LONG).show();

                }
               
                /*else if(phone.matches(phonenoStr)==false  ) {
                            Toast.makeText(SignupActivity.this," Please provide phone no",Toast.LENGTH_SHORT).show();
                           // am_checked=0;
                        }*/
               
                /*else if(phone.length()<10||phone.length()>15) {
                    Toast.makeText(SignupActivity.this," Please provide valid phone no",Toast.LENGTH_SHORT).show();
                   // am_checked=0;
                }*/
               
                else if (password.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide password",
                            Toast.LENGTH_LONG).show();

                }
                else if (password.length()<6) {
                    Toast.makeText(SignupActivity.this, "Please provide password with minimum 6 character",
                            Toast.LENGTH_LONG).show();

                }
               
                else if (confirmpassword.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide confirm password",
                            Toast.LENGTH_LONG).show();

                }
               
               
               
            }   
               
           
             else if (!checkEmail(email)) {
                    Toast.makeText(SignupActivity.this, "Please provide valid email id",
                            Toast.LENGTH_LONG).show();
                }
           
           
            else if(phone.length()<12||phone.length()>15) {
                Toast.makeText(SignupActivity.this," Please provide valid phone no",Toast.LENGTH_SHORT).show();
               // am_checked=0;
            }
                   
           
             else if (password.length()<6) {
                    Toast.makeText(SignupActivity.this, "Please provide password with minimum 6 character",
                            Toast.LENGTH_LONG).show();

                }
           
             else if (!confirmpassword .equals(password)) {
               
                 Toast.makeText(SignupActivity.this, "Password and Confirm password should be match",
                            Toast.LENGTH_LONG).show();
               
                /* AlertDialog alertDialog = new AlertDialog.Builder(SignupActivity.this).create();
                    alertDialog.setTitle("oops!");
                    alertDialog.setMessage("Passwords do not match");
                    alertDialog.setButton("Ok",
                    new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                              //dismiss the dialog 
                            }
                        });
                    alertDialog.show();*/

                }
           
           
           
           
             else{
               
                 callDialog();   
   
               
             }
                       
                   
        }
           
       
    }
   
    private boolean checkEmail(String email) {
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }

    public SignupActivity(){
          pattern = Pattern.compile(PASSWORD_PATTERN);
      }
      public boolean validate(String password){
           
          matcher = pattern.matcher(password);
          return matcher.matches();

      }

}

**********************************************************************************

















package com.rakesht;


import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.JSONHandler;
import com.rakesht.json.JSONParserDataActivity;
import com.rakesht.json.MyHttpConnection;

public class ItemActivity extends Activity implements OnClickListener{
    TextView Tv_item_back,Tv_item_header;
    ListView Lv_item;
    ImageLoader imageDownloadNewList;
    String response = "",  getSearch;
    Editor editor;

    private MobileArrayAdapter listAdapter;
    SharedPreferences preferences;
    private ProgressDialog progressDialog;
    private boolean flag_response = false;
    private int selectedOption;
    ImageView Imgv_selected;
    private final ArrayList<JSONParserDataActivity> itemArrayList = new ArrayList<JSONParserDataActivity>();
   
     
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
          setContentView(R.layout.item);
   
    init();
    Imgv_selected=(ImageView)findViewById(Footer.ABOUT_ID);
    Imgv_selected.setImageResource(R.drawable.icon_about_selected);
    }
   
    public void init(){
       
        Lv_item=(ListView)findViewById(R.id.item_listv);
        imageDownloadNewList = new ImageLoader(this);
        preferences = getSharedPreferences("My_Pref", 0);
        editor=preferences.edit();
        selectedOption = getIntent().getIntExtra("from", selectedOption);
        getSearch="http://100.101.130.200/rakesht/json.php?action=getitem&page=1";
        callDialog();
    }
   
    public void callDialog() {
        progressDialog = ProgressDialog.show(itemActivity.this, null, "Loading...");
        progressDialog.setCancelable(true);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                getData();
            }
        }).start();
    }

    public void getData() {

        response = MyHttpConnection.makeConnection(getSearch);
       
        Log.i("System out","Response : "+response);

        if(response != null){
            flag_response = true;
        }else {
            flag_response = false;
        }
        handler.sendEmptyMessage(0);
    }

    Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if (progressDialog != null) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
                if (flag_response) {
                    setData();
                }else {
                    Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
                }
            }
        };
    };

    public void setData() {
        try {
            JSONArray jsonArray;
            JSONObject jsonObject;

            jsonArray = new JSONArray(response);
            for (int i = 0; i < jsonArray.length(); i++) {
                jsonObject = jsonArray.getJSONObject(i);
                itemArrayList.add((JSONParserDataActivity) new JSONHandler().parse(
                        jsonObject.toString(), JSONParserDataActivity.class,
                        "com.rakesh.json"));
            }

            Log.i("System out", "itemname : " + itemArrayList.size()+"\n"+itemArrayList.get(0).getitemName());

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "No item found!", Toast.LENGTH_SHORT).show();
            //itemActivity.this.finish();
        }

        if (itemArrayList.isEmpty()) {
            //Toast.makeText(getApplicationContext(), "No record found!", Toast.LENGTH_SHORT).show();
            //itemActivity.this.finish();
        }else {
            Lv_item=(ListView)findViewById(R.id.item_listv);
            Lv_item.setDivider(getResources().getDrawable(R.drawable.line));
            Lv_item.setCacheColorHint(Color.TRANSPARENT);
            Lv_item.setFocusable(true);
            listAdapter=new MobileArrayAdapter(this, itemArrayList);

           Lv_item.setAdapter( listAdapter );

           Lv_item.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?>parent, View view,int position, long id){

                         editor.putString("itemID", itemArrayList.get(position).getItemId());
                        editor.putString("itemname", itemArrayList.get(position).getItemName());
                        editor.putString("price", itemArrayList.get(position).getPrice());
//                        editor.putString("getItemDescription", itemArrayList.get(position).getItemDescription());
                        editor.commit();
                        Intent i=new Intent(getApplicationContext(),ItemDetailActivity.class);
                        startActivity(i);
                        //itemActivity.this.finish();
                       
                }
            });
        }
    }

   
    public class MobileArrayAdapter extends ArrayAdapter<JSONParserDataActivity> {
        private final Context context;
       

        public MobileArrayAdapter(Context context,ArrayList<JSONParserDataActivity> itemArrayList) {
            super(context, R.layout.item_list_item, itemArrayList);
            this.context = context;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View rowView = inflater.inflate(R.layout.item_list_item, parent,
                    false);
            TextView tvitemname = (TextView) rowView.findViewById(R.id.txt_item_name);
                   
            TextView tvitemdescription = (TextView) rowView.findViewById(R.id.txt_item_description);
            TextView tvitem = (TextView) rowView.findViewById(R.id.tv_item_rent);
            ImageView imgvitemimage=(ImageView)rowView.findViewById(R.id.imageView_item);   
           
            try {
               
                imageDownloadNewList.DisplayImage(getString(R.string.url_image_item)+
                        itemArrayList.get(position)
                        .getItemImage()
                        .replace(" ", "%20"),imgvitemlimage);
                tvitemname.setText(itemArrayList.get(position).getItemName());
                tvitemdescription.setText(itemArrayList.get(position).getItemDescription());
                tvitem.setText(itemArrayList.get(position).getPrice());
               
               
            } catch (Exception e)
            {
                // TODO: handle exception
                e.printStackTrace();
                //Toast.makeText(getApplicationContext(), "No record found!", Toast.LENGTH_SHORT).show();
                //itemActivity.this.finish();
            }
           
           

            return rowView;
        }
    }







    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       
    }
   
   
   

}



JSONHandler.java

package com.rakesht.json;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

/**
 * Adds the ability to JSON Lib (in Android) to parse JSON data into Bean Class. It
 * is based on Android's (org.json.*)
 *
 * @author
 *
 */
public class JSONHandler {

    String TAG = "My App";
   

    /**
     * Parse a JSONObject and create instance of BeanClass. The JSONObject can internally contain
     * any kind of Objects and Arrays. The field names of BeanClass should exactly match as the JSON
     * property name.
     *
     * TODO:
     * 1. Support JSONArray as initial argument. Note: JSONArray can be
     * intermediate argument during the recursion process.
     * 2. Support primitive/custom Array. At present it supports only ArrayList
     * 3. Support custom data types which doesn't belong to -same Base Package-
     * 
     * @param jsonStr JSON String
     * @param beanClass Java Bean class
     * @param basePackage Base package name which includes all Bean classes
     * @return Instance of of the Bean Class with parsed value embedded.
     * @throws Exception
     */
    public Object parse(String jsonStr, Class beanClass, String basePackage) throws Exception
    {
        /*
         * This will be a recursive method
         * 1. Read all member variables of BeanClass
         * 2. Read values from JSON
         * 3. If it is an ArrayList, call parse() with its type class
         * 4. If it is a Custom Class, call parse() with its type class
         */
        Object obj = null;
        JSONObject jsonObj = new JSONObject(jsonStr);
       
        if(beanClass == null){
            p("Class instance is Null");
            return null;
        }
       
        p("Class Name: "+ beanClass.getName());
        p("Package: "+ beanClass.getPackage().getName());
        // Read Class member fields
        Field[] props = beanClass.getDeclaredFields();
       
        if(props == null || props.length == 0)
        {
            /*
             * This class has no fields
             */
//            p("Class "+ beanClass.getName() +" is empty");
            return null;
        }
       
        // Create instance of this Bean class
        obj = beanClass.newInstance();
        // Set value of each member variable of this object
        for(int i=0; i<props.length; i++)
        {
            String fieldName = props[i].getName();
            // Filter public and static fields
            if(props[i].getModifiers() == (Modifier.PUBLIC | Modifier.STATIC))
            {
                // Skip static fields
//                p("Modifier: "+ props[i].getModifiers());
//                p("Static Field: "+ fieldName +" ....Skip");
                continue;
            }
           
            // Date Type of Field
            Class type = props[i].getType();
            String typeName = type.getName();
           
            /*
             * If the type is not primitive- [int, long, java.lang.String, float, double] and ArrayList/List
             * Check for Custom type 
             */
            if(typeName.equals("int")) // int type
            {
//                p("Primitive Field: "+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                @SuppressWarnings("unchecked")
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getInt()
                try{
                    m.invoke(obj, jsonObj.getInt(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(typeName.equals("long"))
            {
//                p("Primitive Field: "+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getLong()
                try{
                    m.invoke(obj, jsonObj.getLong(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(typeName.equals("java.lang.String"))
            {
//                p("Primitive Field: >>>"+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getString()
                try{
                    m.invoke(obj, jsonObj.getString(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(typeName.equals("double"))
            {
//                p("Primitive Field: "+ fieldName + " Type: "+ typeName);
                // Handle Integer data
                // Get associated Set method- Need to mention Method Argument
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- JSONObject.getDouble()
                try{
                    m.invoke(obj,  jsonObj.getDouble(fieldName));
                }catch(Exception ex){
//                    p("Error: "+ ex.toString());
                }
            }
            else if(type.getName().equals(List.class.getName()) ||
                    type.getName().equals(ArrayList.class.getName())){
                // ArrayList
                // Find out the Generic i.e. Class type of its content
//                p("ArrayList Field: "+ fieldName + " Type: "+ type.getName() +" field: "+ props[i].toGenericString());
                String generic = props[i].getGenericType().toString();
//                p("ArrayList Generic: "+ generic);
               
                if(generic.indexOf("<") != -1){
                    // extract generic from <>
                    String genericType = generic.substring(generic.lastIndexOf("<")+1, generic.lastIndexOf(">"));
                    if(genericType != null){
                        // Further refactor it
                        //showClassDesc(Class.forName(genericType), basePackage);
                        // It is a JSON Array- loop through the Array and create instances
//                        p("Generic Type: "+ genericType);
                        JSONArray array = null;
                        try{
                            array = jsonObj.getJSONArray(fieldName);
                        }catch(Exception ex){
//                            p("Error: "+ ex.toString());
                            array = null;
                        }
                        /*
                         * If it is of Primitive types, loop through the JSON Array and read tem into an
                         * ArrayList
                         */
                        if(array == null)
                            continue;
//                        p("JSON Array Size: "+ array.length());
                        ArrayList arrayList = new ArrayList();
                        for(int j=0; j<array.length(); j++)
                        {
                            arrayList.add(parse(array.getJSONObject(j).toString(), Class.forName(genericType), basePackage));
                        }
                       
                        // Set the value
                        Class[] parms = {type};
                        Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                        m.setAccessible(true);
                        m.invoke(obj,  arrayList);
                    }
                   
                }
                else{
                    // No generic defined
                    // ArrayList<Generic_Type>
                    generic = null;
                }
            }
            else if(typeName.startsWith(basePackage)){
                // Custom Class
                // Handle Custom class
                // Get associated Set method- Need to mention Method Argument
//                p("Custom class Field: "+ fieldName + " Type: "+ typeName);
                Class[] parms = {type};
                Method m = beanClass.getDeclaredMethod(getBeanMethodName(fieldName, 1), parms);
                m.setAccessible(true);
               
                // Set value- do a recursive Call to read values of this custom class
                try{
                    JSONObject customObj = jsonObj.getJSONObject(fieldName);
                    if(customObj != null)
                        m.invoke(obj, parse(customObj.toString(), type, basePackage));
                }catch(JSONException ex){
//                    p("Error: "+ ex.toString());
                    // TODO: set default value
                }
            }
            else{
                // Skip it
//                p("Skip, Field: "+ fieldName +" Type: "+ typeName +" SimpleTypeName: "+  type.getSimpleName());
            }
        }
        return obj;
    }
   
    /**
     * Generate Get/Set method of BeanClass fields
     * @param fieldName
     * @param type
     * @return
     */
    private String getBeanMethodName(String fieldName, int type){
        if(fieldName == null || fieldName == "")
            return "";
        String method_name = "";
        if(type == 0)
            method_name = "get";
        else
            method_name = "set";
        method_name += fieldName.substring(0, 1).toUpperCase();
       
        if(fieldName.length() == 1)// Field name is of 1 char
            return method_name;
       
        method_name += fieldName.substring(1);
        return method_name;
    }
   
    private void p(String msg){
        //System.out.println(msg);
//        Log.v(TAG, "# "+ msg);
    }
}

**********************************************************************************

package com.rakesht.json;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

import android.util.Log;

public class MyHttpConnection {
   
    private HttpClient httpClient;
    private HttpPost httpPost;
    private HttpResponse httpResponse;
    private InputStream inputStream;
    private BufferedReader bufferedReader;
    private String returnData=null;
   
    public MyHttpConnection(){
       
    }
   
    public static String makeConnection(String urlString){
        String urlStr = urlString.replaceAll(" ", "%20").replaceAll("'", "%27");
        Log.d("System out", "Url==> "+ urlStr);
        URL url;
        HttpURLConnection connection;
        StringBuffer buffer = null;
       
        try {
            url = new URL(urlStr);
            connection = (HttpURLConnection)url.openConnection();
            buffer = new StringBuffer();
            InputStreamReader inputReader = new InputStreamReader(connection.getInputStream());
            BufferedReader buffReader = new BufferedReader(inputReader);
            String line = "";
            do {
                line = buffReader.readLine();
                if (line != null)
                    buffer.append(line);
            } while (line != null);
           
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
        Log.d("System out", "Response==> "+ buffer.toString());
        return buffer.toString();
    }   
    public String excutePost(String url, String urlParameters)
      {
        URL url1;
        HttpURLConnection connection = null; 
        try {
          //Create connection
          url1 = new URL(url);
          connection = (HttpURLConnection)url1.openConnection();
          connection.setRequestMethod("POST");
          connection.setRequestProperty("Content-Type",
               "application/json");
               
          connection.setRequestProperty("Content-Length", "" +
                   Integer.toString(urlParameters.getBytes().length));
          connection.setRequestProperty("Content-Language", "en-US"); 
               
          connection.setUseCaches (false);
          connection.setDoInput(true);
          connection.setDoOutput(true);

          //Send request
          DataOutputStream wr = new DataOutputStream (
                      connection.getOutputStream ());
          wr.writeBytes (urlParameters);
          wr.flush ();
          wr.close ();

          //Get Response   
          InputStream is = connection.getInputStream();
          BufferedReader rd = new BufferedReader(new InputStreamReader(is));
          String line;
          StringBuffer response = new StringBuffer();
          while((line = rd.readLine()) != null) {
            response.append(line);
            response.append('\r');
          }
          rd.close();
          return response.toString();

        } catch (Exception e) {

          e.printStackTrace();
          return null;

        } finally {

          if(connection != null) {
            connection.disconnect();
          }
        }
      }
    public String ParsedData(String GETURL, String Function){
       
        try{
            Log.d("System out", "Function in parsed Data "+Function);
            httpClient = new DefaultHttpClient();
            httpPost = new HttpPost(GETURL);
            httpPost.setEntity(new StringEntity(Function));
            httpResponse = httpClient.execute(httpPost);
            inputStream = httpResponse.getEntity().getContent();
            bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line = null;
            StringBuffer buffer = new StringBuffer();
            do{
                line = bufferedReader.readLine();
                Log.d("System out", "line "+line);
                if(line!=null){
                    buffer.append(line);
                }
            }while(line!=null);
            returnData = buffer.toString();
            bufferedReader.close();
            buffer = null;
        }catch (Exception e) {
            // TODO: handle exception
            returnData = null;
            Log.d("System out", "Error in ParsedData "+e.getMessage());
        }
        return returnData;
    }
}

**********************************************************************************


package com.rakesht.json;

import java.io.Serializable;

@SuppressWarnings("serial")
public class JSONParserDataActivity implements Serializable {

    private String Id, Name,Description, Image,
            Country, Latitude, Longitude, price;
    private String Includes, Excludes, Name, Id, Image;
     private String Id,Id,Id,Image,ImageCaption,hpCreatedDate;
    private String rms;
    private String facilityId,facName,facDescription,facImage,status,dateadded,datemodified;

    public String getFacilityId() {
        return facilityId;
    }

    public void setFacilityId(String facilityId) {
        this.facilityId = facilityId;
    }

    public String getFacName() {
        return facName;
    }

    public void setFacName(String facName) {
        this.facName = facName;
    }

    public String getFacDescription() {
        return facDescription;
    }

    public void setFacDescription(String facDescription) {
        this.facDescription = facDescription;
    }

    public String getFacImage() {
        return facImage;
    }

    public void setFacImage(String facImage) {
        this.facImage = facImage;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDateadded() {
        return dateadded;
    }

    public void setDateadded(String dateadded) {
        this.dateadded = dateadded;
    }

    public String getDatemodified() {
        return datemodified;
    }

    public void setDatemodified(String datemodified) {
        this.datemodified = datemodified;
    }

    public void setId(String Id) {
        this.Id = Id;
    }

    public String getId() {
        return Id;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public String getName() {
        return Name;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    public String getDescription() {
        return Description;
    }

    public void setImage(StringImage) {
        this.Image = Image;
    }

    public String getImage() {
        return Image;
    }

    public void setCountry(String Country) {
        this.Country = Country;
    }

    public String getCountry() {
        return Country;
    }

    public void setLatitude(String Latitude) {
        this.Latitude = Latitude;
    }

    public String getLatitude() {
        return Latitude;
    }

    public void setLongitude(String Longitude) {
        this.Longitude = Longitude;
    }

    public String getLongitude() {
        return Longitude;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getPrice() {
        return price;
    }

    public void setIncludes(String Includes) {
        this.Includes = Includes;
    }

    public String getIncludes() {
        return Includes;
    }

    public void setExcludes(String Excludes) {
        this.Excludes = hrExcludes;
    }

    public String getExcludes() {
        return Excludes;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public String getName() {
        return Name;
    }
   
}

**********************************************************************************
SigninActivity.java

package com.rakesht;

import java.text.NumberFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.json.MyHttpConnection;

public class SigninActivity extends Activity implements OnClickListener{
    Intent i;
    Button Btn_signin,Btn_signup;
    TextView Txtv_forgot_password,Txtv_auto_login;
    EditText Edt_signin_email,Edt_signin_password;
    ImageView Imgv_canceltext_email,Imgv_canceltext_pass;
    CheckBox chkbx_autologin;
    LinearLayout lay_offer;
    private String username,password;
    String response = "";
    private ProgressDialog progressDialog;
    private boolean flag_response = false;
    ScrollView sign_in;
    private Boolean b1 = true, b2 = true, b3 = true, b4 = true, b5 = true;
    private NumberFormat nf;
   
    public final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
              "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
              "\\@" +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
              "(" +
              "\\." +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
              ")+"
          );
    private Pattern pattern;
      private Matcher matcher;
    private SharedPreferences settings;
    private Editor editor;
      private static final String PASSWORD_PATTERN =
          "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
     
     
     
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sign_in);
        init();
        settings = getSharedPreferences("My_Pref", 0);
        editor=settings.edit();
        username=settings.getString("uname", "");
        password=settings.getString("pass", "");
        Log.i("System out","User name---2 : "+username);
        Log.i("System out","Password----2 : "+password);
       
//        if(((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).isActive())
//        {
//            lay_offer.setVisibility(View.INVISIBLE);
//        }
//        else
//        {
//            lay_offer.setVisibility(View.VISIBLE);
//        }
       
         if (username=="" || password=="")
            {
              
            }
            else
            {
                Log.i("System out","User name---3 : "+username);
                Log.i("System out","Password----3 : "+password);
               
                Edt_signin_email.setText(username);
                Edt_signin_password.setText(password);
                chkbx_autologin.setChecked(true);
                chkbx_autologin.setButtonDrawable(R.drawable.checkbox_selected_login);
               
            }

        //this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
       
       
        settings = getSharedPreferences("My_Pref", 0);
        editor=settings.edit();
      
       
        chkbx_autologin.setOnCheckedChangeListener(new OnCheckedChangeListener()
        {
           
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                if(isChecked)
                {
//                    chkbx_autologin.setBackgroundResource(R.drawable.checkbox_selected_login);
                    chkbx_autologin.setButtonDrawable(R.drawable.checkbox_selected_login);
                }
                else
                {
                    chkbx_autologin.setButtonDrawable(R.drawable.checkbox_login);
                }
               
            }
        });
       
       
        final View activityRootView = findViewById(R.id.activityRoot);
       

       
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener()
        {
            @Override
            public void onGlobalLayout()
            {
                int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
                if (heightDiff > 100)
                {
                    lay_offer.setVisibility(View.INVISIBLE);
                }
                else
                {
                    lay_offer.setVisibility(View.VISIBLE);
                }
             }
        });
       
       
    }
   
   
   
   
   
//    public interface OnKeyboardVisibilityListener {
//
//        void onVisibilityChanged(boolean visible);
//    }
//
//    public final void setKeyboardListener(final OnKeyboardVisibilityListener listener) {
//        final View activityRootView = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
//        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
//
//            private boolean wasOpened;
//
//        private final Rect r = new Rect();
//
//            @Override
//            public void onGlobalLayout() {
//                activityRootView.getWindowVisibleDisplayFrame(r);
//
//                int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);
//                boolean isOpen = heightDiff > 100;
//                if (isOpen == wasOpened) {
//                    lay_offer.setVisibility(View.VISIBLE);
//                    return;
//                }
//
//                else
//                {
//                    lay_offer.setVisibility(View.INVISIBLE);
//                }
//                wasOpened = isOpen;
//                listener.onVisibilityChanged(isOpen);
//            }
//        });
//    }
   
   
    public void init(){
       
       
        Btn_signin=(Button)findViewById(R.id.btn_signin);
        Btn_signup=(Button)findViewById(R.id.btn_signup);
        Txtv_forgot_password=(TextView)findViewById(R.id.tv_forgot_password);
        Edt_signin_email=(EditText)findViewById(R.id.edt_signin_email);
        Edt_signin_password=(EditText)findViewById(R.id.edt__signin_password);
        chkbx_autologin=(CheckBox)findViewById(R.id.imgv_auto_login);
        Imgv_canceltext_email=(ImageView)findViewById(R.id.imgv_cancel_email);
        Imgv_canceltext_pass=(ImageView)findViewById(R.id.imgv_cancel_pass);
        Btn_signin.setOnClickListener(this);
        Btn_signup.setOnClickListener(this);
        Txtv_forgot_password.setOnClickListener(this);
        chkbx_autologin.setOnClickListener(this);
        Imgv_canceltext_email.setOnClickListener(this);
         Imgv_canceltext_pass.setOnClickListener(this);
         Edt_signin_email.setOnClickListener(this);
         Edt_signin_password.setOnClickListener(this);
         sign_in=(ScrollView)findViewById(R.id.sign_in);
         lay_offer=(LinearLayout)findViewById(R.id.lay_offer);
         Edt_signin_email.addTextChangedListener(new TextWatcher()
         {
                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b1) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_canceltext_email.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

         Edt_signin_email.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b1 = false;
                        Imgv_canceltext_email.setVisibility(View.GONE);
                        String st = Edt_signin_email.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Edt_signin_email.setText(st);
                        }
                    } else {
                        b1 = true;
                        String st = Edt_signin_email.getText().toString();
                        if (st.equals("")) {
                            Imgv_canceltext_email.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
       
       
         Edt_signin_password.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b2) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_canceltext_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

         Edt_signin_password.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b2 = false;
                        Imgv_canceltext_pass.setVisibility(View.GONE);
                        String st = Edt_signin_password.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Edt_signin_password.setText(st);
                        }
                    } else {
                        b2 = true;
                        String st = Edt_signin_password.getText().toString();
                        if (st.equals("")) {
                            Imgv_canceltext_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_canceltext_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
       
       
       
    }
   
    public void callDialog() {
        progressDialog = ProgressDialog.show(SigninActivity.this, null, "Loading...");
        progressDialog.setCancelable(true);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                    getData();
            }
        }).start();
    }
   
    public void getData() {

        String signinemail = Edt_signin_email.getText().toString();
        String signinpassword = Edt_signin_password.getText().toString();
       
        String url="http://100.101.130.111/rakesh/json.php?action=login&userEmail="+signinemail+"&userPass="+signinpassword;

        Log.i("System out","url : "+url);
        response = MyHttpConnection.makeConnection(url);
        Log.i("System out","Response : "+response);
       
        if(response != null)
        {
           
            flag_response = true;
        }else {
            flag_response = false;
        }
        handler.sendEmptyMessage(0);
    }
   
    Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if (progressDialog != null) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
                if (flag_response) {
                   
                    RegisterNLJson();
                }else {
                    Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
                }
            }
        };
    };
   
   
    public void RegisterNLJson() {
        JSONArray jsonArray;
        JSONObject jsonObject;
       
        try {
        jsonArray = new JSONArray(response);
       
        jsonObject = jsonArray.getJSONObject(0);
        if(jsonObject.has("status"))
        {
            String status=jsonObject.getString("status");
            Toast.makeText(getApplicationContext(), status, Toast.LENGTH_SHORT).show();
        }   
        else
        {
            Toast.makeText(getApplicationContext(), " Successfully Login", Toast.LENGTH_SHORT).show();
            editor.putString("userid", jsonObject.getString("userId"));
            editor.putString("userFirstName", jsonObject.getString("userFirstName"));
            editor.putString("userLastName", jsonObject.getString("userLastName"));
            editor.putString("userPhone", jsonObject.getString("userPhone"));
            editor.putString("userEmail", jsonObject.getString("userEmail"));
            editor.putString("userPass", jsonObject.getString("userPass"));
            editor.putString("userAddress", jsonObject.getString("userAddress"));
            editor.putString("userCity", jsonObject.getString("userCity"));
            editor.putString("userState", jsonObject.getString("userState"));
            editor.putString("userZip", jsonObject.getString("userZip"));
            editor.putString("userCountry", jsonObject.getString("userCountry"));
            editor.commit();

            i=new Intent(this,itemActivity.class);
            startActivity(i);
            //SigninActivity.this.finish();
        }   
           
//        SigninActivity.this.finish();
       
        }
        catch (JSONException e)
        {
            e.printStackTrace();
        }
       
    }
   
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       
        String signinemail = Edt_signin_email.getText().toString();
        String signinpassword = Edt_signin_password.getText().toString();
       
        if(v==Btn_signin)
        {
            if(signinemail.equals("") || signinpassword.equals(""))
            {
                if (signinemail.equals(""))
                {
                    Toast.makeText(SigninActivity.this, "Please enter email id",    Toast.LENGTH_LONG).show();

                }
               
                /*else if (signinemail.length()>0)
                {
                    Imgv_canceltext_email.setVisibility(View.VISIBLE);

                }*/
                else if (signinpassword.equals("")||signinpassword.length()<6)
                {
                    Toast.makeText(SigninActivity.this, "Please enter password",Toast.LENGTH_LONG).show();

                }
               
                else if (signinpassword.length()<6)
                {
                    Toast.makeText(SigninActivity.this, "Please enter password with minimum 6 character",Toast.LENGTH_LONG).show();

                }
               
               
            }
            else if (!checkEmail(signinemail))
            {
                Toast.makeText(SigninActivity.this, "Please enter valid email id",Toast.LENGTH_LONG).show();
            }
           
            /*else if(v==Edt_signin_email)
            {
                Imgv_canceltext_email.setVisibility(View.VISIBLE);
            }
            else if(v==Edt_signin_password)
            {
                Imgv_canceltext_pass.setVisibility(View.VISIBLE);
            }*/
           
            else
            {
                if(chkbx_autologin.isChecked())
                {
                    editor.putBoolean("remember", true);
                    editor.putString("username", signinemail);
                    editor.putString("password", signinpassword);
                    editor.putString("uname", signinemail);
                    editor.putString("pass", signinpassword);
                    editor.commit();
                }
               
                if(chkbx_autologin.isChecked()==false)
                {
                    editor.remove("remember");
                    editor.remove("username");
                    editor.remove("password");
                    editor.remove("uname");
                    editor.remove("pass");
                    editor.commit();
                }
                callDialog();
            }
           
           
        }
       
       
        else if(v==Imgv_canceltext_email)
        {
            Edt_signin_email.setText("");
        }
       
        else if(v==Imgv_canceltext_pass)
        {
            Edt_signin_password.setText("");
        }
       
        /*else if(v==chkbx_autologin)
        {
            if(chkbx_autologin.isChecked())
            {
                    chkbx_autologin.setButtonDrawable(R.drawable.checkbox_selected_login);
            }
            else
            {
                chkbx_autologin.setButtonDrawable(R.drawable.checkbox_login);
            }
        }*/
        else if(v==Btn_signup)
        {
            i=new Intent(this,SignupActivity.class);
            startActivity(i);
            //SigninActivity.this.finish();
        }
        else if(v==Txtv_forgot_password)
        {
            i=new Intent(this,ForgotPasswordActivity.class);
            startActivity(i);
            //SigninActivity.this.finish();
        }
       
       
       
    }

   
   
   
   
   
   
    private boolean checkEmail(String email) {
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }
   
     public SigninActivity()
     {
          pattern = Pattern.compile(PASSWORD_PATTERN);
      }
      public boolean validate(String signinpassword)
      {
          matcher = pattern.matcher(signinpassword);
          return matcher.matches();
      }

   
     /*@Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                // Finish activity on back button
//                this.finish();
                overridePendingTransition(R.anim.slide_in_left,
                        R.anim.slide_out_right);
            }
            return super.onKeyDown(keyCode, event);
        }
    */     
     
}

**********************************************************************************







SignupActivity.java



package com.r;akesht

import java.util.ArrayList;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.json.MyHttpConnection;

public class SignupActivity extends Activity implements OnClickListener{
    Intent i;
    Button btn_signup_submit,btn_signup_cancel;
    ImageView Imgv_txtclear_fname,Imgv_txtclear_lname,Imgv_txtclear_email,Imgv_txtclear_phone,
    Imgv_txtclear_pass,Imgv_txtclear_confpass;
    TextView Tv_signup_back, Tv_signup_header;
    EditText Tv_first_name,Tv_last_name,Tv_phone,Tv_email,Tv_password,Tv_confirm_password;
    String response = "",firstname,lastname,email,phone,password,confirmpassword,mid;
    private ProgressDialog progressDialog;
    private boolean flag_response = false, b1 = true, b2 = true, b3 = true, b4 = true, b5 = true,b6=true;
   
//    Boolean update = false;
//    DBAdapter db;
    ArrayList<HashMap<String, String>> userdetail;
    ArrayAdapter ayArrayAdapter;
    String phonenoStr = "^[+][0-9]{10,13}$";
//     AlertDialog.Builder builder = new AlertDialog.Builder(this);
     public final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
              "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
              "\\@" +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
              "(" +
              "\\." +
              "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
              ")+"
          );
   
     private Pattern pattern;
      private Matcher matcher;
    private SharedPreferences settings;
    private Editor editor;
      private static final String PASSWORD_PATTERN =
//         "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
      "((?=.*[@#$%]).{6,20})";
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
       setContentView(R.layout.sign_up);
      
       //this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
       init();
      
       settings = getSharedPreferences("My_Pref", 0);
        editor=settings.edit();
      
      
    }

    public void  init(){
       
        btn_signup_submit=(Button)findViewById(R.id.btn_submit);
           btn_signup_cancel=(Button)findViewById(R.id.btn_cancel);
//           Tv_signup_header=(TextView)findViewById(R.id.txtheaderResTitle);
          
           Tv_first_name=(EditText)findViewById(R.id.edt_signup_firstname);
           Tv_last_name=(EditText)findViewById(R.id.edt_signup_lastname);
           Tv_phone=(EditText)findViewById(R.id.edt_signup_phone);
           Tv_email=(EditText)findViewById(R.id.edt_signup_email);
           Tv_password=(EditText)findViewById(R.id.edt_signup_password);
           Tv_confirm_password=(EditText)findViewById(R.id.edt_signup_confirm_pass);
           Imgv_txtclear_fname=(ImageView)findViewById(R.id.imgv_cancel_fname);
           Imgv_txtclear_lname=(ImageView)findViewById(R.id.imgv_cancel_lname);
           Imgv_txtclear_email=(ImageView)findViewById(R.id.imgv_cancel_email);
           Imgv_txtclear_phone=(ImageView)findViewById(R.id.imgv_cancel_phone);
           Imgv_txtclear_pass=(ImageView)findViewById(R.id.imgv_cancel_pass);
           Imgv_txtclear_confpass=(ImageView)findViewById(R.id.imgv_cancel_confpass);
          
//           Tv_signup_header.setText("Sign Up");
//           Tv_signup_back=(TextView)findViewById(R.id.back);
//           Tv_signup_back.setVisibility(View.GONE);
           btn_signup_submit.setOnClickListener(this);
           btn_signup_cancel.setOnClickListener(this);
           Imgv_txtclear_fname.setOnClickListener(this);
           Imgv_txtclear_lname.setOnClickListener(this);
           Imgv_txtclear_email.setOnClickListener(this);
           Imgv_txtclear_phone.setOnClickListener(this);
           Imgv_txtclear_pass.setOnClickListener(this);
           Imgv_txtclear_confpass.setOnClickListener(this);
         
          
           Tv_first_name.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b1) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_fname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_fname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_first_name.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b1 = false;
                        Imgv_txtclear_fname.setVisibility(View.GONE);
                        String st = Tv_first_name.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_first_name.setText(st);
                        }
                    } else {
                        b1 = true;
                        String st = Tv_first_name.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_fname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_fname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           
           Tv_last_name.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b2) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_lname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_lname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_last_name.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b2 = false;
                        Imgv_txtclear_lname.setVisibility(View.GONE);
                        String st = Tv_last_name.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_last_name.setText(st);
                        }
                    } else {
                        b2 = true;
                        String st = Tv_last_name.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_lname.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_lname.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_phone.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b3) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_phone.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_phone.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_phone.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b3 = false;
                        Imgv_txtclear_phone.setVisibility(View.GONE);
                        String st = Tv_phone.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_phone.setText(st);
                        }
                    } else {
                        b3 = true;
                        String st = Tv_phone.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_phone.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_phone.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_email.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b4) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_email.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_email.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b4 = false;
                        Imgv_txtclear_email.setVisibility(View.GONE);
                        String st = Tv_email.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_email.setText(st);
                        }
                    } else {
                        b4 = true;
                        String st = Tv_email.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_email.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_email.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_password.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b5) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_password.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b5 = false;
                        Imgv_txtclear_pass.setVisibility(View.GONE);
                        String st = Tv_password.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_password.setText(st);
                        }
                    } else {
                        b5 = true;
                        String st = Tv_password.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_pass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_pass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
           Tv_confirm_password.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (b6) {
                        String st = s.toString();
                        if (st.equals("")) {
                            Imgv_txtclear_confpass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_confpass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });

           Tv_confirm_password.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    // show/hide image button for end of the text box
                    if (!hasFocus) {
                        b6 = false;
                        Imgv_txtclear_confpass.setVisibility(View.GONE);
                        String st = Tv_confirm_password.getText().toString();
                        if (st.equals("")) {
                        } else {
                            st = st.replace(",", "");
                            /*Double d = Double.parseDouble(st);
                            String s1 = nf.format(d);*/
                            Tv_confirm_password.setText(st);
                        }
                    } else {
                        b6 = true;
                        String st = Tv_confirm_password.getText().toString();
                        if (st.equals("")) {
                            Imgv_txtclear_confpass.setVisibility(View.GONE);
                        } else {
                            Imgv_txtclear_confpass.setVisibility(View.VISIBLE);
                        }
                    }
                }
            });
       
          
          
    }
   
   
    public void callDialog() {
        progressDialog = ProgressDialog.show(SignupActivity.this, null, "Loading...");
        progressDialog.setCancelable(true);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                    getData();
            }
        }).start();
    }
   
    public void getData() {

        firstname=Tv_first_name.getText().toString();
        lastname=Tv_last_name.getText().toString();
        email=Tv_email.getText().toString();
        phone=Tv_phone.getText().toString();
        password=Tv_password.getText().toString();
       
//        String url="http://100.101.130.200/rakesht/json.php?action=Registernewsletter&json=[{\"nlSubscriberFN\":\""+firstname+"\",\"nlSubscriberLN\":\""+lastname+"\",\"nlSubscriberEmail\":\""+email+"\",\"age\":\""+age+"\",\"country\":\""+country+"\",\"sex\":\""+gender+"\"}]";
        String url="http://100.101.130.200/rakesht/json.php?action=insertusers&json=[{\"userFirstName\":\""+firstname+"\",\"userLastName\":\""+lastname+"\",\"userPhone\":\""+phone+"\",\"userEmail\":\""+email+"\",\"userPass\":\""+password+"\"}]";
//        String url="http://100.101.130.200/rakesht/json.php?action=insertusers&json=[{%22userFirstName%22:%22a%22,%22userLastName%22:%22b%22,%22userPhone%22:%229876543214%22,%22userEmail%22:%22abc@gmail.com%22,%22userPass%22:%22abc%22}]";
       

        response =MyHttpConnection.makeConnection(url);
        Log.i("System out","Response : "+response);

        if(response != null){
            flag_response = true;
        }else {
            flag_response = false;
        }
        handler.sendEmptyMessage(0);
    }
   
    Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if (progressDialog != null) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
                if (flag_response) {
                   
                    RegisterNLJson();
                }else {
                    Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
                }
            }
        };
    };
   
   
    public void RegisterNLJson() {
        JSONArray jsonArray;
        JSONObject jsonObject;
       
        try {
        jsonArray = new JSONArray(response);
       
        jsonObject = jsonArray.getJSONObject(0);
        Log.v("System out","Response : in fun"+jsonObject);
        String status=jsonObject.getString("userId");
       
        if(status!=null)
        {
        Log.v("System out","Response : in status"+status);
        Toast.makeText(getApplicationContext(), "Signup successfully.", Toast.LENGTH_SHORT).show();
       
        editor.putString("uname", Tv_email.getText().toString());
        editor.putString("pass", Tv_password.getText().toString());
        editor.commit();
       
        i=new Intent(this,SigninActivity.class);
        startActivity(i);
//        SignupActivity.this.finish();
        }else{
            Toast.makeText(getApplicationContext(), status, Toast.LENGTH_SHORT).show();
        }
           
       
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
   
   
   
   
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       
         String firstname=Tv_first_name.getText().toString();
            String lastname=Tv_last_name.getText().toString();
            String phone=Tv_phone.getText().toString();
            String email=Tv_email.getText().toString();
            String password=Tv_password.getText().toString();
            String confirmpassword=Tv_confirm_password.getText().toString();
           
           
             if(v==btn_signup_cancel){
//                SignupActivity.this.finish();
                i=new Intent(this,SigninActivity.class);
                startActivity(i);
            }
           
             else if(v==Imgv_txtclear_fname){
                 Tv_first_name.setText("");
               
             }
             else if(v==Imgv_txtclear_lname){
                 Tv_last_name.setText("");
             }
             else if(v==Imgv_txtclear_email){
               
                 Tv_email.setText("");
               
             }
             else if(v==Imgv_txtclear_phone){
                 Tv_phone.setText("");
             }
             else if(v==Imgv_txtclear_pass){
                 Tv_password.setText("");
             }
             else if(v==Imgv_txtclear_confpass){
                 Tv_confirm_password.setText("");
             }
       
             else    if(v==btn_signup_submit){
           
           
            if (firstname.equals("") || lastname.equals("")
                    || phone.equals("")||email.equals("")|| password.equals("")|| confirmpassword.equals("")) {
                if (firstname.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide first name",
                            Toast.LENGTH_LONG).show();

                }
                else if (lastname.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide last name",
                            Toast.LENGTH_LONG).show();

                }
               
               
                else if (email.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide email id",
                            Toast.LENGTH_LONG).show();

                }
                /*else if (!checkEmail(email)) {
                    Toast.makeText(SignupActivity.this, "Please provide valid email id",
                            Toast.LENGTH_LONG).show();
                }*/
               
               
               
                else if (phone.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide phone no",
                            Toast.LENGTH_LONG).show();

                }
               
                /*else if(phone.matches(phonenoStr)==false  ) {
                            Toast.makeText(SignupActivity.this," Please provide phone no",Toast.LENGTH_SHORT).show();
                           // am_checked=0;
                        }*/
               
                /*else if(phone.length()<10||phone.length()>15) {
                    Toast.makeText(SignupActivity.this," Please provide valid phone no",Toast.LENGTH_SHORT).show();
                   // am_checked=0;
                }*/
               
                else if (password.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide password",
                            Toast.LENGTH_LONG).show();

                }
                else if (password.length()<6) {
                    Toast.makeText(SignupActivity.this, "Please provide password with minimum 6 character",
                            Toast.LENGTH_LONG).show();

                }
               
                else if (confirmpassword.equals("")) {
                    Toast.makeText(SignupActivity.this, "Please provide confirm password",
                            Toast.LENGTH_LONG).show();

                }
               
               
               
            }   
               
           
             else if (!checkEmail(email)) {
                    Toast.makeText(SignupActivity.this, "Please provide valid email id",
                            Toast.LENGTH_LONG).show();
                }
           
           
            else if(phone.length()<12||phone.length()>15) {
                Toast.makeText(SignupActivity.this," Please provide valid phone no",Toast.LENGTH_SHORT).show();
               // am_checked=0;
            }
                   
           
             else if (password.length()<6) {
                    Toast.makeText(SignupActivity.this, "Please provide password with minimum 6 character",
                            Toast.LENGTH_LONG).show();

                }
           
             else if (!confirmpassword .equals(password)) {
               
                 Toast.makeText(SignupActivity.this, "Password and Confirm password should be match",
                            Toast.LENGTH_LONG).show();
               
                /* AlertDialog alertDialog = new AlertDialog.Builder(SignupActivity.this).create();
                    alertDialog.setTitle("oops!");
                    alertDialog.setMessage("Passwords do not match");
                    alertDialog.setButton("Ok",
                    new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                              //dismiss the dialog 
                            }
                        });
                    alertDialog.show();*/

                }
           
           
           
           
             else{
               
                 callDialog();   
   
               
             }
                       
                   
        }
           
       
    }
   
    private boolean checkEmail(String email) {
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }

    public SignupActivity(){
          pattern = Pattern.compile(PASSWORD_PATTERN);
      }
      public boolean validate(String password){
           
          matcher = pattern.matcher(password);
          return matcher.matches();

      }

}

*********************************************************************************
UpdateProfile

import java.util.ArrayList;
import java.util.Arrays;
import java.util.regex.Pattern;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class UpdateProfileActivity  extends Activity implements OnClickListener{

TextView Tv_updateprofile_back,Tv_updateprofile_header;
Intent i;
LinearLayout Lay_menufooter;
Button Btn_submit,Btn_cancel;
ImageView Imgv_contctdetails_bookingdetails,
Imgv_txtclear_fname,Imgv_txtclear_lname,Imgv_txtclear_email,Imgv_txtclear_address,
Imgv_txtclear_zipcode,Imgv_txtclear_city,Imgv_txtclear_country,Imgv_txtclear_phone,Imgv_dropdown;
TextView Tv_cntctdetail_back,Tv_cntctdetail_header,Tv_contctdetails_bookingdetails,
Tv_first_name,Tv_last_name,Tv_phone,Tv_email,Tv_address,Tv_zip,Tv_city,Tv_country;
private SharedPreferences preferences;
String response = "",firstname,lastname,email,emailaddress,address,zipcode,city,country,phone,userid;
private Editor editor;
    Footer footer;
private ProgressDialog progressDialog;
private boolean flag_response = false, b1 = true, b2 = true, b3 = true, b4 = true, b5 = true,b6=true
,b7=true,b8=true;
String phonenoStr = "^[+][0-9]{10,13}$";
Pattern pattern = Pattern.compile("^[+][0-9]{10,13}$");
String[] countryname = new String[] {
"Afghanistan", "Albania","Algeria", "Angola","Anguilla","Antarctica","Argentina","Aruba","Australia","Austria",
"Azerbaijan","Bahamas", "Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bhutan","Bolivia",
"Bosnia and Herzegovina","Botswana","Brazil","Brunei","Bulgaria","Burkina Faso","Burma","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Central African Republic","Chad","Chile",
"China","Colombia","Comoros","Congo","Costa Rica","Cote d'Ivoire","Croatia","Cuba","Curacao","Cyprus","Czech Rpublic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea",
"Eritrea","Estonia","Ethiopia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Greece",
"Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana", "Haiti","Holy See","Honduras","Hong Kong","Hungary","Iceland",
"India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati",
"Kosovo","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya",
"Liechtenstein","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta",
"Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro",
"Morocco","Mozambique","Namibia","Nauru","Nepal","Netherlands","Netherlands Antilles","New Zealand","Nicaragua",
"Niger","Nigeria","North Korea","Norway","Oman","Pakistan","Palau","Palestinian Territories","Panama","Papua New Guinea",
"Paraguay","Peru","Philippines","Poland","Portugal","Qatar","Romania","Russia","Rwanda","Saint Kitts and Nevis",
"Saint Lucia","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal",
"Serbia","Seychelles","Sierra Leone","Singapore","Sint Maarten","Slovakia","Slovenia","Solomon Islands","Somalia",
"South Africa","South Korea","South Sudan","Spain","Sri Lanka","Sudan"," Suriname","Swaziland","Sweden","Switzerland",
"Syria","Taiwan","Tajikistan","Tanzania","Thailand",
"Timor-Leste","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","Uruguay", "Uzbekistan","Vanuatu", "Venezuela",
"Vietnam","Yemen","Zambia","Zimbabwe"};
 String pos;

public final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(
         "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
         "\\@" +
         "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
         "(" +
         "\\." +
         "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
         ")+"
     );
private ImageView Imgv_selected;

@Override
public void onStart()
{

       super.onStart();
       Logout.activity21 = UpdateProfileActivity.this;
}


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.update_profile);
preferences = getSharedPreferences("My_Pref", 0);
editor=preferences.edit();

userid=preferences.getString("userid","");
firstname=preferences.getString("userFirstName","");
lastname=preferences.getString("userLastName","");
emailaddress=preferences.getString("userEmail","");
address=preferences.getString("userAddress","");
zipcode=preferences.getString("userZip","");
city=preferences.getString("userCity","");
country=preferences.getString("userCountry","");
phone=preferences.getString("userPhone","");
// this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
init();
Imgv_selected=(ImageView)findViewById(Footer.SETTING_ID);
Imgv_selected.setImageResource(R.drawable.icon_setting_selected);

}

public void init(){
Tv_updateprofile_back=(TextView)findViewById(R.id.back);
Tv_updateprofile_header=(TextView)findViewById(R.id.txtheaderResTitle);

Tv_first_name=(EditText)findViewById(R.id.edt_updprfl_firstname);
      Tv_last_name=(EditText)findViewById(R.id.edt_updprfl_lastname);
      Tv_phone=(EditText)findViewById(R.id.edt_updprfl_phoneno);
      Tv_email=(EditText)findViewById(R.id.edt_updprfl_email);
      Tv_address=(EditText)findViewById(R.id.edt_updprfl_address);
      Tv_zip=(EditText)findViewById(R.id.edt_updprfl_zipcode);
      Tv_city=(EditText)findViewById(R.id.edt_updprfl_city);
      Tv_country=(TextView)findViewById(R.id.edt_updprfl_country);
      Btn_submit=(Button)findViewById(R.id.btn_submit);
      Btn_cancel=(Button)findViewById(R.id.btn_cancel);
      Lay_menufooter=(LinearLayout)findViewById(R.id.menufooter);
     
      Tv_first_name.setText(firstname);
      Tv_last_name.setText(lastname);
      Tv_email.setText(emailaddress);
      Tv_address.setText(address);
      Tv_zip.setText(zipcode);
      Tv_city.setText(city);
      Tv_country.setText(country);
      Tv_phone.setText(phone);
     
     
      Imgv_txtclear_fname=(ImageView)findViewById(R.id.imgv_cancel_fname);
      Imgv_txtclear_lname=(ImageView)findViewById(R.id.imgv_cancel_lname);
      Imgv_txtclear_email=(ImageView)findViewById(R.id.imgv_cancel_email);
      Imgv_txtclear_phone=(ImageView)findViewById(R.id.imgv_cancel_phone);
      Imgv_txtclear_address=(ImageView)findViewById(R.id.imgv_cancel_address);
      Imgv_txtclear_zipcode=(ImageView)findViewById(R.id.imgv_cancel_zipcode);
      Imgv_txtclear_city=(ImageView)findViewById(R.id.imgv_cancel_city);
      Imgv_txtclear_country=(ImageView)findViewById(R.id.imgv_cancel_country);
      Imgv_dropdown=(ImageView)findViewById(R.id.imgv_dropdown);
     
Tv_updateprofile_header.setText("Update Profile");

Tv_updateprofile_back.setOnClickListener(this);
Btn_submit.setOnClickListener(this);
Btn_cancel.setOnClickListener(this);
Tv_country.setOnClickListener(this);
  Imgv_txtclear_fname.setOnClickListener(this);
      Imgv_txtclear_lname.setOnClickListener(this);
//       Imgv_txtclear_email.setOnClickListener(this);
      Imgv_txtclear_phone.setOnClickListener(this);
      Imgv_txtclear_address.setOnClickListener(this);
      Imgv_txtclear_zipcode.setOnClickListener(this);
      Imgv_txtclear_city.setOnClickListener(this);
      Imgv_txtclear_country.setOnClickListener(this);
      Imgv_dropdown.setOnClickListener(this);
     
 Tv_first_name.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
// Lay_menufooter.setVisibility(View.GONE);
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b1) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_fname.setVisibility(View.GONE);
} else {
Imgv_txtclear_fname.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_first_name.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
// Lay_menufooter.setVisibility(View.GONE);
if (!hasFocus) {
b1 = false;
Imgv_txtclear_fname.setVisibility(View.GONE);
String st = Tv_first_name.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_first_name.setText(st);
}
} else {
b1 = true;
String st = Tv_first_name.getText().toString();
if (st.equals("")) {
Imgv_txtclear_fname.setVisibility(View.GONE);
} else {
Imgv_txtclear_fname.setVisibility(View.VISIBLE);
}
}
}
});

     
      Tv_last_name.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b2) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_lname.setVisibility(View.GONE);
} else {
Imgv_txtclear_lname.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_last_name.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b2 = false;
Imgv_txtclear_lname.setVisibility(View.GONE);
String st = Tv_last_name.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_last_name.setText(st);
}
} else {
b2 = true;
String st = Tv_last_name.getText().toString();
if (st.equals("")) {
Imgv_txtclear_lname.setVisibility(View.GONE);
} else {
Imgv_txtclear_lname.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_phone.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b3) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_phone.setVisibility(View.GONE);
} else {
Imgv_txtclear_phone.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_phone.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b3 = false;
Imgv_txtclear_phone.setVisibility(View.GONE);
String st = Tv_phone.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_phone.setText(st);
}
} else {
b3 = true;
String st = Tv_phone.getText().toString();
if (st.equals("")) {
Imgv_txtclear_phone.setVisibility(View.GONE);
} else {
Imgv_txtclear_phone.setVisibility(View.VISIBLE);
}
}
}
});

     Tv_email.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b4) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_email.setVisibility(View.GONE);
} else {
Imgv_txtclear_email.setVisibility(View.GONE);
}
}
}
});

      Tv_email.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b4 = false;
Imgv_txtclear_email.setVisibility(View.GONE);
String st = Tv_email.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_email.setText(st);
}
} else {
b4 = true;
String st = Tv_email.getText().toString();
if (st.equals("")) {
Imgv_txtclear_email.setVisibility(View.GONE);
} else {
Imgv_txtclear_email.setVisibility(View.GONE);
}
}
}
});

      Tv_address.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b5) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_address.setVisibility(View.GONE);
} else {
Imgv_txtclear_address.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_address.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b5 = false;
Imgv_txtclear_address.setVisibility(View.GONE);
String st = Tv_address.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_address.setText(st);
}
} else {
b5 = true;
String st = Tv_address.getText().toString();
if (st.equals("")) {
Imgv_txtclear_address.setVisibility(View.GONE);
} else {
Imgv_txtclear_address.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_zip.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b6) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_zipcode.setVisibility(View.GONE);
} else {
Imgv_txtclear_zipcode.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_zip.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b6 = false;
Imgv_txtclear_zipcode.setVisibility(View.GONE);
String st = Tv_zip.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_zip.setText(st);
}
} else {
b6 = true;
String st = Tv_zip.getText().toString();
if (st.equals("")) {
Imgv_txtclear_zipcode.setVisibility(View.GONE);
} else {
Imgv_txtclear_zipcode.setVisibility(View.VISIBLE);
}
}
}
});

      Tv_city.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b7) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_city.setVisibility(View.GONE);
} else {
Imgv_txtclear_city.setVisibility(View.VISIBLE);
}
}
}
});

     Tv_city.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b7 = false;
Imgv_txtclear_city.setVisibility(View.GONE);
String st = Tv_city.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_city.setText(st);
}
} else {
b7 = true;
String st = Tv_city.getText().toString();
if (st.equals("")) {
Imgv_txtclear_city.setVisibility(View.GONE);
} else {
Imgv_txtclear_city.setVisibility(View.VISIBLE);
}
}
}
});

     Tv_country.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (b8) {
String st = s.toString();
if (st.equals("")) {
Imgv_txtclear_country.setVisibility(View.GONE);
} else {
Imgv_txtclear_country.setVisibility(View.VISIBLE);
}
}
}
});

     Tv_country.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
// show/hide image button for end of the text box
if (!hasFocus) {
b8 = false;
Imgv_txtclear_country.setVisibility(View.GONE);
String st = Tv_country.getText().toString();
if (st.equals("")) {
} else {
st = st.replace(",", "");
/*Double d = Double.parseDouble(st);
String s1 = nf.format(d);*/
Tv_country.setText(st);
}
} else {
b8 = true;
String st = Tv_country.getText().toString();
if (st.equals("")) {
Imgv_txtclear_country.setVisibility(View.GONE);
} else {
Imgv_txtclear_country.setVisibility(View.VISIBLE);
}
}
}
});

     
     



}


public void callDialog() {
progressDialog = ProgressDialog.show(UpdateProfileActivity.this, null, "Loading...");
progressDialog.setCancelable(true);
new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
getData();
}
}).start();
}

public void getData() {

   String firstname=Tv_first_name.getText().toString();
String lastname=Tv_last_name.getText().toString();
   String email=Tv_email.getText().toString();
String phone=Tv_phone.getText().toString();
String address=Tv_address.getText().toString();
String zip=Tv_zip.getText().toString();
String city=Tv_city.getText().toString();
String country=Tv_country.getText().toString();

String url="http://100.101.145.211/testapp/json.php?action=editusers&userId="+userid+"&json=[{\"userFirstName\":\""+firstname+"\",\"userLastName\":\""+lastname+"\",\"userPhone\":\""+phone+"\",\"userAddress\":\""+address+"\",\"userCity\":\""+city+"\",\"userState\":\"\",\"userZip\":\""+zip+"\",\"userCountry\":\""+country+"\"}]";
response =MyHttpConnection.makeConnection(url);
Log.i("System out","Response : "+response);

if(response != null){
flag_response = true;
}else {
flag_response = false;
}
handler.sendEmptyMessage(0);
}

Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
if (progressDialog != null) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
if (flag_response) {

RegisterNLJson();
}else {
Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
}
}
};
};


public void RegisterNLJson() {
JSONArray jsonArray;
JSONObject jsonObject;

try {
jsonArray = new JSONArray(response);

jsonObject = jsonArray.getJSONObject(0);
Log.v("System out","Response : in fun"+jsonObject);
String status=jsonObject.getString("userId");

if(status!=null)
{
editor.putString("userid", jsonObject.getString("userId"));
editor.putString("userFirstName", jsonObject.getString("userFirstName"));
editor.putString("userLastName", jsonObject.getString("userLastName"));
editor.putString("userPhone", jsonObject.getString("userPhone"));
editor.putString("userEmail", jsonObject.getString("userEmail"));
editor.putString("userPass", jsonObject.getString("userPass"));
editor.putString("userAddress", jsonObject.getString("userAddress"));
editor.putString("userCity", jsonObject.getString("userCity"));
editor.putString("userState", jsonObject.getString("userState"));
editor.putString("userZip", jsonObject.getString("userZip"));
editor.putString("userCountry", jsonObject.getString("userCountry"));
editor.commit();


/*editor.putString("userid", userid);
editor.putString("userFirstName",firstname );
editor.putString("userLastName",lastname );
editor.putString("userPhone", phone);
editor.putString("userAddress", address);
editor.putString("userCity", city);
editor.putString("userZip", zipcode);
editor.putString("userCountry",country );
editor.commit(); */

Log.v("System out","Response : in status"+status);
            Toast.makeText(getApplicationContext(), "Update successfully", Toast.LENGTH_SHORT).show();
           
            Intent i=new Intent(this,SettingsActivity.class);
startActivity(i);
//            UpdateProfileActivity.this.finish();
// SignupActivity.this.finish();
}else{
Toast.makeText(getApplicationContext(), status, Toast.LENGTH_SHORT).show();
}


} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}





@Override
public void onClick(View v) {
// TODO Auto-generated method stub

String firstname=Tv_first_name.getText().toString();
String lastname=Tv_last_name.getText().toString();
   String email=Tv_email.getText().toString();
String phone=Tv_phone.getText().toString();
String address=Tv_address.getText().toString();
String zip=Tv_zip.getText().toString();
String city=Tv_city.getText().toString();
String country=Tv_country.getText().toString();


if(v==Tv_updateprofile_back){
UpdateProfileActivity.this.finish();
}

else if(v==Btn_cancel){
UpdateProfileActivity.this.finish();
}
else if(v==Tv_country||v==Imgv_dropdown)
{
// AlertDialog.Builder builder = new AlertDialog.Builder(UpdateProfileActivity.this);
// builder.setTitle("Country");
// builder.setItems(countryname, new DialogInterface.OnClickListener()
// {
// public void onClick(DialogInterface dialog, int item)
// {
// if(Tv_country.getText().toString().equalsIgnoreCase(""))
// {}
// else
// {
// }
// Tv_country.setText(countryname[item]);
// }
// });
//
// AlertDialog alert = builder.create();
// alert.show();


final ArrayList<String> stringList = new ArrayList<String>(Arrays.asList(countryname));

AlertDialog.Builder dialog1 = new AlertDialog.Builder(UpdateProfileActivity.this);
dialog1.setTitle("Select Country");
   LayoutInflater inflater = (LayoutInflater)UpdateProfileActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE);
   View layout = inflater.inflate(R.layout.list1, null, false);

   final ListView title = (ListView)layout.findViewById(R.id.listview);
 
   final AlertDialog Dial = dialog1.create();
   ArrayAdapter<String> ad=new ArrayAdapter<String>(UpdateProfileActivity.this, android.R.layout.select_dialog_singlechoice,stringList);
   title.setAdapter(ad);
 
   if(Tv_country.getText().toString().equalsIgnoreCase(""))
   {
    Log.d("hello", "finally done if");
   }
   else
   {
    pos=Tv_country.getText().toString();
    int a=stringList.indexOf(pos);
    title.setSelection(a);
    title.setChoiceMode(title.CHOICE_MODE_SINGLE);
    title.setItemChecked(a, true);
   }
   Dial.setView(layout);
   title.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
Dial.dismiss();
Tv_country.setText(stringList.get(arg2));
pos=(String) arg0.getItemAtPosition(arg2);
}
});

   Dial.show();


}

else if(v==Imgv_txtclear_fname){
Lay_menufooter.setVisibility(View.GONE);
Tv_first_name.setText("");

}
else if(v==Imgv_txtclear_lname){
Lay_menufooter.setVisibility(View.GONE);
Tv_last_name.setText("");
}
/* else if(v==Imgv_txtclear_email){

Tv_email.setText("");

}*/
else if(v==Imgv_txtclear_phone){
Tv_phone.setText("");
}
else if(v==Imgv_txtclear_address){
Tv_address.setText("");
}
else if(v==Imgv_txtclear_zipcode){
Tv_zip.setText("");
}
else if(v==Imgv_txtclear_city)
{
Tv_city.setText("");
}

else if(v==Imgv_txtclear_country)
{
Tv_country.setText("");
}



else if(v==Btn_submit){


if (firstname.equals("") || lastname.equals("")
|| email.equals("")|| address.equals("")|| zip.equals("")|| city.equals("")
|| country.equals("")|| phone.equals("")) {
if (firstname.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide first name",
Toast.LENGTH_LONG).show();

}
else if (lastname.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide last name",
Toast.LENGTH_LONG).show();

}
else if (email.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide email id",
Toast.LENGTH_LONG).show();

}

else if (!checkEmail(email)) {
Toast.makeText(UpdateProfileActivity.this, "Please provide valid email id",
Toast.LENGTH_LONG).show();
}

else if (address.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide address",
Toast.LENGTH_LONG).show();

}

else if (zip.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide zip",
Toast.LENGTH_LONG).show();

}
else if (city.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide city",
Toast.LENGTH_LONG).show();

}
else if (country.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide country",
Toast.LENGTH_LONG).show();

}

else if (phone.equals("")) {
Toast.makeText(UpdateProfileActivity.this, "Please provide phone no.",
Toast.LENGTH_LONG).show();

}

/*else if(phone.length()<10) {
               Toast.makeText(UpdateProfileActivity.this," Please provide valid phone no",Toast.LENGTH_SHORT).show();
              // am_checked=0;
           }*/
else if(phone.matches(phonenoStr)==false  ) {
               Toast.makeText(UpdateProfileActivity.this," Please provide numeric value",Toast.LENGTH_SHORT).show();
              // am_checked=0;
           }


}
else if(phone.length()<10||phone.length()>15) {
               Toast.makeText(UpdateProfileActivity.this," Please provide valid phone no",Toast.LENGTH_SHORT).show();
              // am_checked=0;
           }


/*else if (!checkEmail(email)) {
Toast.makeText(UpdateProfileActivity.this, "Please provide valid email id",
Toast.LENGTH_LONG).show();
}*/


else {

callDialog();

}


}


}

private boolean checkEmail(String email) {
   return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
}



}




**********************************************************************************
















package com.rakesht;


import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.JSONHandler;
import com.rakesht.json.JSONParserDataActivity;
import com.rakesht.json.MyHttpConnection;

public class ItemActivity extends Activity implements OnClickListener{
    TextView Tv_item_back,Tv_item_header;
    ListView Lv_item;
    ImageLoader imageDownloadNewList;
    String response = "",  getSearch;
    Editor editor;

    private MobileArrayAdapter listAdapter;
    SharedPreferences preferences;
    private ProgressDialog progressDialog;
    private boolean flag_response = false;
    private int selectedOption;
    ImageView Imgv_selected;
    private final ArrayList<JSONParserDataActivity> itemArrayList = new ArrayList<JSONParserDataActivity>();
   
     
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
          setContentView(R.layout.item);
   
    init();
    Imgv_selected=(ImageView)findViewById(Footer.ABOUT_ID);
    Imgv_selected.setImageResource(R.drawable.icon_about_selected);
    }
   
    public void init(){
       
        Lv_item=(ListView)findViewById(R.id.item_listv);
        imageDownloadNewList = new ImageLoader(this);
        preferences = getSharedPreferences("My_Pref", 0);
        editor=preferences.edit();
        selectedOption = getIntent().getIntExtra("from", selectedOption);
        getSearch="http://100.101.130.200/rakesht/json.php?action=getitem&page=1";
        callDialog();
    }
   
    public void callDialog() {
        progressDialog = ProgressDialog.show(itemActivity.this, null, "Loading...");
        progressDialog.setCancelable(true);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                getData();
            }
        }).start();
    }

    public void getData() {

        response = MyHttpConnection.makeConnection(getSearch);
       
        Log.i("System out","Response : "+response);

        if(response != null){
            flag_response = true;
        }else {
            flag_response = false;
        }
        handler.sendEmptyMessage(0);
    }

    Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if (progressDialog != null) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }
                if (flag_response) {
                    setData();
                }else {
                    Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
                }
            }
        };
    };

    public void setData() {
        try {
            JSONArray jsonArray;
            JSONObject jsonObject;

            jsonArray = new JSONArray(response);
            for (int i = 0; i < jsonArray.length(); i++) {
                jsonObject = jsonArray.getJSONObject(i);
                itemArrayList.add((JSONParserDataActivity) new JSONHandler().parse(
                        jsonObject.toString(), JSONParserDataActivity.class,
                        "com.rakesh.json"));
            }

            Log.i("System out", "itemname : " + itemArrayList.size()+"\n"+itemArrayList.get(0).getitemName());

        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "No item found!", Toast.LENGTH_SHORT).show();
            //itemActivity.this.finish();
        }

        if (itemArrayList.isEmpty()) {
            //Toast.makeText(getApplicationContext(), "No record found!", Toast.LENGTH_SHORT).show();
            //itemActivity.this.finish();
        }else {
            Lv_item=(ListView)findViewById(R.id.item_listv);
            Lv_item.setDivider(getResources().getDrawable(R.drawable.line));
            Lv_item.setCacheColorHint(Color.TRANSPARENT);
            Lv_item.setFocusable(true);
            listAdapter=new MobileArrayAdapter(this, itemArrayList);

           Lv_item.setAdapter( listAdapter );

           Lv_item.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?>parent, View view,int position, long id){

                         editor.putString("itemID", itemArrayList.get(position).getItemId());
                        editor.putString("itemname", itemArrayList.get(position).getItemName());
                        editor.putString("price", itemArrayList.get(position).getPrice());
//                        editor.putString("getItemDescription", itemArrayList.get(position).getItemDescription());
                        editor.commit();
                        Intent i=new Intent(getApplicationContext(),ItemDetailActivity.class);
                        startActivity(i);
                        //itemActivity.this.finish();
                       
                }
            });
        }
    }

   
    public class MobileArrayAdapter extends ArrayAdapter<JSONParserDataActivity> {
        private final Context context;
       

        public MobileArrayAdapter(Context context,ArrayList<JSONParserDataActivity> itemArrayList) {
            super(context, R.layout.item_list_item, itemArrayList);
            this.context = context;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View rowView = inflater.inflate(R.layout.item_list_item, parent,
                    false);
            TextView tvitemname = (TextView) rowView.findViewById(R.id.txt_item_name);
                   
            TextView tvitemdescription = (TextView) rowView.findViewById(R.id.txt_item_description);
            TextView tvitem = (TextView) rowView.findViewById(R.id.tv_item_rent);
            ImageView imgvitemimage=(ImageView)rowView.findViewById(R.id.imageView_item);   
           
            try {
               
                imageDownloadNewList.DisplayImage(getString(R.string.url_image_item)+
                        itemArrayList.get(position)
                        .getItemImage()
                        .replace(" ", "%20"),imgvitemlimage);
                tvitemname.setText(itemArrayList.get(position).getItemName());
                tvitemdescription.setText(itemArrayList.get(position).getItemDescription());
                tvitem.setText(itemArrayList.get(position).getPrice());
               
               
            } catch (Exception e)
            {
                // TODO: handle exception
                e.printStackTrace();
                //Toast.makeText(getApplicationContext(), "No record found!", Toast.LENGTH_SHORT).show();
                //itemActivity.this.finish();
            }
           
           

            return rowView;
        }
    }







    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
       
    }
   
   
   

}

*********************************************************************************

ItemDetail.java


package com.rakesht;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;

import org.json.JSONArray;
import org.json.JSONObject;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.Rect;
import android.location.Address;
import android.location.Geocoder;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Parcelable;
import android.util.Log;
import android.view.Display;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

import com.rakesht.R.layout;
import com.rakesht.fb.DialogError;
import com.rakesht.fb.Facebook;
import com.rakesht.fb.Facebook.DialogListener;
import com.rakesht.fb.FacebookError;
import com.rakesht.fb.FbLoginCommon;
import com.rakesht.json.JSONHandler;
import com.rakesht.json.JSONParserDataActivity;
import com.rakesht.json.MyHttpConnection;
import com.rakesht.json.RoomDetails;
import com.rakesht.json.Share;
import com.rakesht.quickaction.ActionItem;
import com.rakesht.quickaction.QuickAction;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.plus.PlusClient;
import com.google.android.gms.plus.PlusShare;



public class itemDetailActivity extends Activity implements OnClickListener,
PlusClient.ConnectionCallbacks, PlusClient.OnConnectionFailedListener,
DialogInterface.OnCancelListener
{

QuickAction mQuickAction;
ActionItem addAction, accAction, upAction,ueeAction;
TextView Tv_items_back,Tv_itemdetail_header,Tv_itemname,Tv_item_description,Tv_item_location,Tv_room_price,
Tv_checkindate,Tv_month,Tv_date,Tv_comletedate,Tv_checkoutdate,Tv_month_checkout,Tv_date_checkout,
Tv_comletedate_checkout,Tv_complete_date_checkout,Tv_spinner1,Tv_spinner2,Tv_spinner3,Tv_value,Tv_noofnights,totalperson,
Tv_itemlocation,Tv_checkindate1,Tv_checkoutdate1;
ImageView Imgv_itemsdetail_socialshring,Imgv_itemimage,Imgv_itemi_locationicon,
Imgv_spinner1,Imgv_spinner2,Imgv_spinner3,Imgv_plussign,Imgv_minussign;
Button Btn_select_rooms;
Intent i;
int item;
DatePickerDialog dp;
private String price;
Calendar c = Calendar.getInstance();
private final ArrayList<RoomDetails> itemArrayList1 = new ArrayList<RoomDetails>();
private final ArrayList<RoomDetails> itemArrayList = new ArrayList<RoomDetails>();
int m,d,y;
Double latitude,longitude;
private int counter=0,date;
private String stringVal;
private String stringdate;
StringBuilder strReturnedAddress;
JSONParserDataActivity jsonParserData;
ImageLoader imageDownloadNewList;
String response = "",  getSearch,response1="";
SharedPreferences preferences;
private int selectedOption;
ImageView Imgv_selected;
private String desc;
protected String extStorageDirectory;
protected File outputFile;
protected Bitmap bm;
protected static final String TAG = "ShareActivity";
private static final String STATE_SHARING = "state_sharing";
private static final int DIALOG_GET_GOOGLE_PLAY_SERVICES = 1;
private static final int REQUEST_CODE_SIGN_IN = 1;
private static final int REQUEST_CODE_INTERACTIVE_POST = 2;
private static final int REQUEST_CODE_GET_GOOGLE_PLAY_SERVICES = 3;
private static final String LABEL_VIEW_ITEM = "VIEW_ITEM";
private boolean mSharing;
private PlusClient mPlusClient;
private Facebook facebook = new Facebook("194678594056909");
Date Bookdate;

String[] numbers = new String[] { " ","1",
"2", "3",
"4", "5",
"6" ,"7","8","9","10"};
private int year;
private int month;
private int day;
private SharedPreferences settings;
private Editor editor;
private LinearLayout lladdMenu;
private LayoutInflater Searchinflater;
private ImageView mailshare,fbshare,twittershare,gplushshare;
private Animation anim;
static final int DATE_PICKER_ID = 1111;
static final int DATE_PICKER_ID_OUT = 1121;
public static boolean isMenuVisible = false;
boolean flag,spin1=false, spin2=false, spin3=false;
String itemID,itemName,getitemImage,cindate,itemname,nights,cout;
private Date inate;
private ProgressDialog progressDialog;
private boolean flag_response=false,flag_response1=false;
Date currentDate,datePickerDate;
String[] nameOfAppsToShareWith = new String[] { "Email", "Yahoo", "gmail" };
String[] blacklist = new String[]{"Facebook", "Twitter", "Bluetooth", "Google+", "Picasa"};
ArrayList<Share> shareArray=new ArrayList<Share>();
private PopupWindow mWindow_color;
private Display display;
ScrollView lay_item_detail;
private int mYear;
   private int mMonth;
   private int mDay;
   private int mHour;
   private int mMinute;
boolean showing=true;
 
@Override
public void onStart()
{
       super.onStart();
       App.activity1 = itemsDetailActivity.this;
}

@Override
public void onDestroy()
{

       super.onDestroy();
//        App.activity1 = null;
}



public void initiatePopupWindow() {
try {
//

Searchinflater = (LayoutInflater)itemsDetailActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View   MenuView = Searchinflater.inflate(R.layout.quickaction_new, null, true);


mailshare = (ImageView)MenuView.findViewById(R.id.mailshare);
fbshare= (ImageView)MenuView.findViewById(R.id.fbshare);
twittershare = (ImageView)MenuView.findViewById(R.id.twittershare);
gplushshare= (ImageView)MenuView.findViewById(R.id.gplushshare);

mailshare.setOnClickListener(new OnClickListener()
{
private File cacheDir;
private List<ResolveInfo> emailers;
private ListView spnEmailProgram;
private Intent mail,chooser;

@Override
public void onClick(View v)
{
flag = false;
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if(isSDPresent)
{
try {

BitmapFactory.Options bmOptions;
bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
bm = LoadImage(getString(R.string.url_image_items)+getitemImage, bmOptions);

if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"ExM");
   else
       cacheDir=getCacheDir();

   if(!cacheDir.exists())
       cacheDir.mkdirs();

           OutputStream outStream = null;
outputFile = new File(cacheDir, "image.PNG");
outStream = new FileOutputStream(outputFile);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();

} catch (Exception e) {
e.printStackTrace();
}

Intent sendIntent = new Intent(Intent.ACTION_SEND);
String[] recipients={"testlast11@gmail.com"};
sendIntent.putExtra(Intent.EXTRA_EMAIL, recipients);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name).replace("{itemName}", itemname));
sendIntent.putExtra(Intent.EXTRA_TEXT   , shareArray.get(0).getSettings_value());
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(outputFile));
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send mail"));

}
else
{
try {

BitmapFactory.Options bmOptions;
bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
bm = LoadImage(getString(R.string.url_image_items)+getitemImage, bmOptions);

if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"ExM");
   else
       cacheDir=getCacheDir();

   if(!cacheDir.exists())
       cacheDir.mkdirs();

           OutputStream outStream = null;
outputFile = new File(cacheDir, "image.PNG");
outStream = new FileOutputStream(outputFile);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();

} catch (Exception e) {
e.printStackTrace();
}

Intent sendIntent = new Intent(Intent.ACTION_SEND);
String[] recipients={"testlast11@gmail.com"};
sendIntent.putExtra(Intent.EXTRA_EMAIL, recipients);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name).replace("{itemName}", itemname));
sendIntent.putExtra(Intent.EXTRA_TEXT   , shareArray.get(0).getSettings_value());
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send mail"));
}


mWindow_color.dismiss();

Log.d("src", "remove view value..."+flag);

}
});
fbshare.setOnClickListener(new OnClickListener()
{

@SuppressLint("ParserError")
@Override
public void onClick(View v)
{
flag = false;
Log.d("src", "fb share value...");

postOnWall(getString(R.string.url_image_items)+ getitemImage+"");
Log.d("src", "remove view value..."+flag);

mWindow_color.dismiss();

}
});
twittershare.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
flag = false;
String urlTwitter = "https://twitter.com/share?text=" + shareArray.get(3).getSettings_value().replace("{itemName}", itemname);
Intent twitt = new Intent(itemsDetailActivity.this,TwitterDialog.class);
twitt.putExtra("twturl", "" + urlTwitter);
twitt.putExtra("title", "Twitter");
startActivity(twitt);
Log.d("src", "remove view value..."+flag);
mWindow_color.dismiss();


}
});
gplushshare.setOnClickListener(new OnClickListener()
{

@Override
public void onClick(View v)
{
flag = false;
if (!mPlusClient.isConnected())
{

mSharing = true;

if (!mPlusClient.isConnecting())
{
mPlusClient.connect();
}
} else {
startActivityForResult(getInteractivePostIntent(),
REQUEST_CODE_INTERACTIVE_POST);
}

Log.d("src", "remove view value..."+flag);
mWindow_color.dismiss();

}
});

int xPos, yPos, arrowPos;

int[] location = new int[2];

Imgv_itemsdetail_socialshring.getLocationOnScreen(location);

Rect anchorRect = new Rect(location[0], location[1], location[0]
                                                             + Imgv_itemsdetail_socialshring.getWidth(), location[1] + Imgv_itemsdetail_socialshring.getHeight());

int rootHeight = MenuView.getMeasuredHeight();
int rootWidth = MenuView.getMeasuredWidth();

if (rootWidth == 0) {
rootWidth = MenuView.getMeasuredWidth();
}

int screenWidth = display.getWidth();
int screenHeight = display.getHeight();

// automatically get X coord of popup (top left)

if ((anchorRect.left + rootWidth) > screenWidth) {
xPos = anchorRect.left - (rootWidth - Imgv_itemsdetail_socialshring.getWidth());
xPos = (xPos < 0) ? 0 : xPos;

arrowPos = anchorRect.centerX() - xPos;

} else {
if (Imgv_itemsdetail_socialshring.getWidth() > rootWidth) {
xPos = anchorRect.centerX() - (rootWidth / 2);
} else {
xPos = anchorRect.left;
}

arrowPos = anchorRect.centerX() - xPos;
}

int dyTop = anchorRect.top;
int dyBottom = screenHeight - anchorRect.bottom;

boolean onTop = (dyTop > dyBottom) ? true : false;

if (onTop) {
if (rootHeight > dyTop) {
yPos = 15;
} else {
yPos = anchorRect.top - rootHeight;
}
} else {
yPos = anchorRect.bottom;
}

//yPos=(display.getHeight()*50)/100;

mWindow_color = new PopupWindow(MenuView, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT/*(screenHeight*75)/100*/, false);
mWindow_color.setOutsideTouchable(true);
mWindow_color.showAtLocation(Imgv_itemsdetail_socialshring, Gravity.NO_GRAVITY, xPos-80, yPos);

} catch (Exception e) {
e.printStackTrace();
}
}

@Override
protected void onRestart()
{
super.onRestart();
if(cindate.equalsIgnoreCase(""))
{
//Log.d("date", "date======>if"+cindate);
}
else
{
String[] dtarray=cindate.split(" ");
String[] night=nights.split(",");
String[] outd=cout.split(" ");
SimpleDateFormat format11 = new SimpleDateFormat("MMM");
        SimpleDateFormat format21 = new SimpleDateFormat("MMMM");
        String monthname1="", outmonth="";
        try
{
monthname1 = format21.format(format11.parse(dtarray[2]));
outmonth=format21.format(format11.parse(outd[2]));
}
        catch (Exception e)
        {

}

Tv_comletedate.setText(dtarray[1]+" "+monthname1+" "+dtarray[3]);
Tv_date.setText(dtarray[1]);
Tv_complete_date_checkout.setText(outd[1]);
Tv_comletedate_checkout.setText(outmonth+" "+outd[3]);
Tv_date_checkout.setText(outd[1]);
counter=Integer.parseInt(night[0]);
Tv_value.setText(night[0]);
Tv_noofnights.setText(night[0]);



SimpleDateFormat format1 = new SimpleDateFormat("MMM");
        SimpleDateFormat format2 = new SimpleDateFormat("MM");
        String monthname="";
        int m=0;
        try
{
monthname = format2.format(format1.parse(outd[2]));
m=Integer.parseInt(monthname);

if(m>0)
{
m=m-1;
}
}
catch (ParseException e)
{
e.printStackTrace();
}
c.set(Integer.parseInt(outd[3]), m, Integer.parseInt(outd[1]));
year  = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day   = c.get(Calendar.DAY_OF_MONTH);
}

}

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.itemdetail1);
settings = getSharedPreferences("My_Pref", 0);
editor=settings.edit();
display = getWindowManager().getDefaultDisplay();
itemID=settings.getString("itemID", "");
cindate=settings.getString("cindate", "");
nights=settings.getString("nights", "");
cout=settings.getString("cout", "");
itemname=settings.getString("itemname", "");
price=settings.getString("price", "");
lay_item_detail=(ScrollView)findViewById(R.id.lay_item_detail);
init();
if(cindate.equalsIgnoreCase(""))
{
//Log.d("date", "date======>if"+cindate);
}
else
{
String[] dtarray=cindate.split(" ");
String[] night=nights.split(",");
String[] outd=cout.split(" ");
SimpleDateFormat format11 = new SimpleDateFormat("MMM");
        SimpleDateFormat format21 = new SimpleDateFormat("MMMM");
        String monthname1="", outmonth="";
        try
{
monthname1 = format21.format(format11.parse(dtarray[2]));
outmonth=format21.format(format11.parse(outd[2]));
}
        catch (Exception e)
        {

}

Tv_comletedate.setText(dtarray[1]+" "+monthname1+" "+dtarray[3]);
Tv_date.setText(dtarray[1]);
Tv_complete_date_checkout.setText(outd[1]);
Tv_comletedate_checkout.setText(outmonth+" "+outd[3]);
Tv_date_checkout.setText(outd[1]);
counter=Integer.parseInt(night[0]);
Tv_value.setText(night[0]);
Tv_noofnights.setText(night[0]);



SimpleDateFormat format1 = new SimpleDateFormat("MMM");
        SimpleDateFormat format2 = new SimpleDateFormat("MM");
        String monthname="";
        int m=0;
        try
{
monthname = format2.format(format1.parse(outd[2]));
m=Integer.parseInt(monthname);

if(m>0)
{
m=m-1;
}
}
catch (ParseException e)
{
e.printStackTrace();
}
c.set(Integer.parseInt(outd[3]), m, Integer.parseInt(outd[1]));
mYear  = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay   = c.get(Calendar.DAY_OF_MONTH);
}

preferences = getSharedPreferences("My_Pref", 0);

mPlusClient = new PlusClient.Builder(this, this, this).build();
mSharing = savedInstanceState != null
&& savedInstanceState.getBoolean(STATE_SHARING, false);
int available = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(this);
if (available != ConnectionResult.SUCCESS) {
showDialog(DIALOG_GET_GOOGLE_PLAY_SERVICES);
}

Imgv_selected=(ImageView)findViewById(Footer.ABOUT_ID);
Imgv_selected.setImageResource(R.drawable.icon_about_selected);

lladdMenu = (LinearLayout) findViewById(R.id.addMenu_my_prfl);

Imgv_itemsdetail_socialshring.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Log.d("src", "share button value...");

if(showing)
{
initiatePopupWindow();
showing=false;
}
else
{
mWindow_color.dismiss();
showing=true;
}
}
});

final Calendar c = Calendar.getInstance();
       mYear = c.get(Calendar.YEAR);
       mMonth = c.get(Calendar.MONTH);
       mDay = c.get(Calendar.DAY_OF_MONTH);
   
     
       lay_item_detail.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("dg", "out sideeeeee");

if(showing){
Log.d("dg", "in ifffff");
}else
{
Log.d("dg", "in elseeeee");
mWindow_color.dismiss();
showing=true;
}
return false;
}
});
}




public void callDialog()
{
progressDialog = ProgressDialog.show(itemsDetailActivity.this, null, "Loading...");
progressDialog.setCancelable(true);
new Thread(new Runnable() {

@Override
public void run()
{
getData();
}
}).start();
}
protected void getData()
{
getSearch="http://100.101.130.200/rakesht/json.php?action=getitemDetail&itemId="+itemID;
String share="http://100.101.130.200/rakesht/json.php?action=getitemShare";
response = MyHttpConnection.makeConnection(getSearch);
response1 = MyHttpConnection.makeConnection(share);

Log.i("System out","Response : "+response);

if(response != null)
{
flag_response = true;
}
else
{
flag_response = false;
}


if(response1 != null)
{
flag_response1 = true;
}else {
flag_response1 = false;
}
handler.sendEmptyMessage(0);

}

Handler handler = new Handler()
{
public void handleMessage(android.os.Message msg) {
if (progressDialog != null) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
if (flag_response) {
setData();
}else {
Toast.makeText(getApplicationContext(), "No data!", Toast.LENGTH_SHORT).show();
}


if(flag_response1)
{
ShareDataGet();
}
}
};
};
private TextView txtheaderclose;
protected void ShareDataGet()
{
//shareArray
JSONArray jsonArray;
JSONObject jsonObject;



try
{
jsonArray = new JSONArray(response1);
jsonObject = jsonArray.getJSONObject(0);

for (int i = 0; i < jsonArray.length(); i++)
{
jsonObject = jsonArray.getJSONObject(i);
shareArray.add((Share) new JSONHandler().parse(jsonObject.toString(), Share.class,"com.rakesht.json"));
}
}
catch (Exception e)
{
e.printStackTrace();
}


}


public void setData()
{

try {
JSONArray jsonArray;
JSONObject jsonObject;

jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++)
{
jsonObject = jsonArray.getJSONObject(i);
itemArrayList.add((RoomDetails) new JSONHandler().parse(
jsonObject.toString(), RoomDetails.class,
"com.rakesht.json"));

getitemImage=itemArrayList.get(i).getitemImage();
desc=itemArrayList.get(i).getitemDescription();
JSONArray jsonArray1;
JSONObject jsonObject1;
String rooms = itemArrayList.get(0).getRooms();
jsonArray1 = new JSONArray(rooms);
for (int h = 0; h < jsonArray1.length(); h++)
{
jsonObject1 = jsonArray1.getJSONObject(h);
itemArrayList1.add((RoomDetails) new JSONHandler().parse(jsonObject1.toString(), RoomDetails.class,"com.rakesht.json"));
}


}


imageDownloadNewList = new ImageLoader(this);

Tv_itemname.setText(itemArrayList.get(0).getitemName());
Log.i("System out", "item name : " + itemArrayList.size()+"\n"+itemArrayList.get(0).getitemName());
Tv_item_description.setText(itemArrayList.get(0).getitemDescription());
Log.i("System out", "item name : " + itemArrayList.size()+"\n"+itemArrayList.get(0).getitemName());
Tv_room_price.setText("US$ "+price);
Log.i("System out", "item name : " + itemArrayList.size()+"\n"+itemArrayList.get(0).getitemName());
Tv_itemlocation.setText(itemArrayList.get(0).getitemAddress()+", "+itemArrayList.get(0).getitemCity()+", "+itemArrayList.get(0).getitemState());

imageDownloadNewList.DisplayImage(getString(R.string.url_image_items)+
itemArrayList.get(0).getitemImage().replace(" ", "%20"),Imgv_itemimage);
Tv_checkindate1.setText(itemArrayList.get(0).getitemCheckinTime());
Tv_checkoutdate1.setText(itemArrayList.get(0).getitemCheckoutTime());
Log.i("System out", "item name : " + itemArrayList.size()+"\n"+itemArrayList.get(0).getitemName());


editor.putString("itemname",itemArrayList.get(0).getitemName());
editor.putString("cintime",itemArrayList.get(0).getitemCheckinTime() );
editor.putString("couttime",itemArrayList.get(0).getitemCheckoutTime() );
editor.putString("internetfacility",itemArrayList1.get(0).getHrFaciltiy());
editor.putString("itemImage",itemArrayList1.get(0).getitemImage());
editor.commit();

Log.i("System out","item name--1> : "+itemArrayList.get(0).getitemName());
Log.i("System out","Check in time---1> : "+itemArrayList.get(0).getitemCheckinTime());
Log.i("System out","check out time---1> : "+itemArrayList.get(0).getitemCheckoutTime());
Log.i("System out","item facility---1> : "+itemArrayList1.get(0).getHrFaciltiy());




} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(getApplicationContext(), "No record found!", Toast.LENGTH_SHORT).show();
itemsDetailActivity.this.finish();
}
}

private Animation inFromTopAnimation()
{
Animation inFromTop = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, -1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f);

inFromTop.setDuration(200);
inFromTop.setInterpolator(new AccelerateInterpolator());

return inFromTop;
}

private Animation outToTopAnimation() {

Animation outtoTop = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f);
outtoTop.setDuration(100);
outtoTop.setInterpolator(new AccelerateInterpolator());

return outtoTop;

}
@SuppressLint("ParserError")
public void init(){

Tv_items_back=(TextView)findViewById(R.id.back);
txtheaderclose=(TextView)findViewById(R.id.txtheaderclose);
// txtheaderclose.setBackgroundResource(R.drawable.location_icon_2x);
txtheaderclose.setVisibility(View.VISIBLE);
txtheaderclose.setText("Map");
Tv_itemdetail_header=(TextView)findViewById(R.id.txtheaderResTitle);
Imgv_itemsdetail_socialshring=(ImageView)findViewById(R.id.imv_socialsharing_itemsdetail);
Btn_select_rooms=(Button)findViewById(R.id.btn_select_rooms);
Imgv_itemimage=(ImageView)findViewById(R.id.imageView_itemdetail);
Tv_itemname=(TextView)findViewById(R.id.txtv_itemdetail_name);
Tv_item_description=(TextView)findViewById(R.id.txt_itemdetail_description);
Tv_item_location=(TextView)findViewById(R.id.tv_item_location);
Tv_room_price=(TextView)findViewById(R.id.tv_roomprice);
Tv_itemlocation=(TextView)findViewById(R.id.tv_item_location);
Imgv_itemi_locationicon=(ImageView)findViewById(R.id.imgv_item_locationicon);
Tv_checkindate=(TextView)findViewById(R.id.tv_checkindate);
Tv_checkoutdate=(TextView)findViewById(R.id.tv_checkoutdate);
Tv_month=(TextView)findViewById(R.id.tv_month);
Tv_date=(TextView)findViewById(R.id.tv_date);
Tv_comletedate=(TextView)findViewById(R.id.tv_complete_date);
Tv_month_checkout=(TextView)findViewById(R.id.tv_month_checkout);
Tv_date_checkout=(TextView)findViewById(R.id.tv_date_checkout);
Tv_comletedate_checkout=(TextView)findViewById(R.id.tv_complete_date_checkout);
Tv_complete_date_checkout=(TextView)findViewById(R.id.tv_complete_day_checkout);
Tv_spinner1=(TextView)findViewById(R.id.tv_spinner1);
Tv_spinner2=(TextView)findViewById(R.id.tv_spinner2);
Tv_spinner3=(TextView)findViewById(R.id.tv_spinner3);
Imgv_spinner1=(ImageView)findViewById(R.id.imgv_spinner1);
Imgv_spinner2=(ImageView)findViewById(R.id.imgv_spinner2);
Imgv_spinner3=(ImageView)findViewById(R.id.imgv_spinner3);
Imgv_plussign=(ImageView)findViewById(R.id.imgv_plus);
Imgv_minussign=(ImageView)findViewById(R.id.imgv_minus);
Tv_value=(TextView)findViewById(R.id.tv_value);
Tv_noofnights=(TextView)findViewById(R.id.tv_noofnights);
Tv_checkoutdate1=(TextView)findViewById(R.id.cout);
Tv_checkindate1=(TextView)findViewById(R.id.cin);

// mailshare.setOnClickListener(this);
// fbshare.setOnClickListener(this);
// twittershare.setOnClickListener(this);
// gplushshare.setOnClickListener(this);
Tv_spinner1.setOnClickListener(this);
Tv_spinner2.setOnClickListener(this);
Tv_spinner3.setOnClickListener(this);
Imgv_spinner1.setOnClickListener(this);
Imgv_spinner2.setOnClickListener(this);
Imgv_spinner3.setOnClickListener(this);
Tv_items_back.setOnClickListener(this);
Btn_select_rooms.setOnClickListener(this);
Imgv_itemsdetail_socialshring.setOnClickListener(this);
Imgv_plussign.setOnClickListener(this);
Imgv_minussign.setOnClickListener(this);
Tv_itemdetail_header.setText("items Detail");
Tv_item_description.setOnClickListener(this);
txtheaderclose.setOnClickListener(this);
//--------------------------------------------------------------------------------qick action

addAction = new ActionItem();
addAction.setIcon1(getResources().getDrawable(R.drawable.fb_icon_share));
addAction.setIcon(getResources().getDrawable(R.drawable.email_icon_share));

accAction = new ActionItem();
accAction.setIcon1(getResources().getDrawable(R.drawable.twitter_icon_share));
accAction.setIcon(getResources().getDrawable(R.drawable.gpluse_icon_share));

mQuickAction = new QuickAction(this, QuickAction.VERTICAL);
mQuickAction.addActionItem(addAction);
mQuickAction.addActionItem(accAction);

//------------------------------------------------------------------------------------------------data parsing

imageDownloadNewList = new ImageLoader(this);

Tv_checkindate.setOnClickListener(this);
Tv_month.setOnClickListener(this);
Tv_date.setOnClickListener(this);
Tv_comletedate.setOnClickListener(this);
Tv_checkoutdate.setOnClickListener(this);
Tv_month_checkout.setOnClickListener(this);
Tv_date_checkout.setOnClickListener(this);
Tv_comletedate_checkout.setOnClickListener(this);

year  = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day   = c.get(Calendar.DAY_OF_MONTH);

m=month;
d=day;
y=year;

// Show current date

SimpleDateFormat format1 = new SimpleDateFormat("MM");
SimpleDateFormat format2 = new SimpleDateFormat("MMMM");
String monthname = null ;
try
{
monthname = format2.format(format1.parse(""+(month + 1)));
}
catch (ParseException e)
{
e.printStackTrace();
}
System.out.println(monthname);

Tv_comletedate.setText(new StringBuilder().append(day).append(" ").append(monthname).append(" ").append(year).append(" "));

Tv_month.setText(new StringBuilder().append(monthname).append(" "));
Tv_date.setText(new StringBuilder().append(day).append(" "));


Tv_comletedate_checkout.setText(new StringBuilder().append(monthname).append(" ").append(year).append(" "));
Tv_complete_date_checkout.setText(new StringBuilder().append(day).append(" "));
Tv_month_checkout.setText(new StringBuilder().append(monthname).append(" "));
Tv_date_checkout.setText(new StringBuilder().append(day).append(" "));
Tv_comletedate_checkout.setText(new StringBuilder().append(monthname).append(" ").append(year).append(" "));
Tv_complete_date_checkout.setText(new StringBuilder().append(day).append(" "));
Tv_month_checkout.setText(new StringBuilder().append(monthname).append(" "));
Tv_date_checkout.setText(new StringBuilder().append(day).append(" "));

callDialog();
}



/*protected Dialog onCreateDialog(int id)
{
switch (id)
{
case DATE_PICKER_ID:
return new DatePickerDialog(this, pickerListener, year, month,day);
}
return null;
}*/

private final DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener()
{
private String convertedDate;

@SuppressWarnings("deprecation")
@SuppressLint("SimpleDateFormat")
@Override
// public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay)
// {
//
// Log.d("date", "sel date===>"+selectedYear+"....... "+selectedMonth+"...."+selectedDay);


// onDateSet method
public void onDateSet(DatePicker view, int year1, int monthOfYear,
int dayOfMonth) {

mYear = year1;
           mMonth = monthOfYear;
           mDay = dayOfMonth;

Date currentDate = new Date();

Date date = new Date(year1 - 1900, monthOfYear, dayOfMonth);

//
// date.setHours(currentDate.getHours());
// date.setMinutes(currentDate.getMinutes());
// date.setSeconds(currentDate.getSeconds());

Log.d("System out", "True: Current date: "+currentDate +"  Selected date: "+date);


if (removeTime(date).equals(removeTime(currentDate)))
{
SimpleDateFormat format1 = new SimpleDateFormat("MM");
SimpleDateFormat format2 = new SimpleDateFormat("MMMM");
String monthname = null ;
try
{
monthname = format2.format(format1.parse(""+(monthOfYear + 1)));
}
catch (ParseException e)
{
e.printStackTrace();
}
System.out.println(monthname);

Tv_comletedate.setText(new StringBuilder()
.append(dayOfMonth).append(" ")
.append(monthname)
.append(" ").append(year1)
.append(" "));
Tv_month.setText(new StringBuilder().append(monthname).append(" "));
Tv_date.setText(new StringBuilder().append(dayOfMonth).append(" "));

Tv_comletedate_checkout.setText(new StringBuilder()
.append(monthname)
.append(" ").append(year1)
.append(" "));

Tv_complete_date_checkout.setText(new StringBuilder().append(dayOfMonth).append(" "));
Tv_month_checkout.setText(new StringBuilder().append(monthname).append(" "));

Tv_date_checkout.setText(new StringBuilder().append(dayOfMonth).append(" "));

counter=0;
Tv_value.setText("0");
Tv_noofnights.setText("0");
Tv_date_checkout.setText(dayOfMonth+"");
Tv_complete_date_checkout.setText(dayOfMonth+"");
Tv_month_checkout.setText(monthname+"");
Tv_comletedate_checkout.setText(monthname+" "+year1);
c.set(year, month, day);
}

else if(date.after(currentDate))
{
Log.d("System out", "iffffffffffffffff");
try {
DateFormat df1 = new SimpleDateFormat("dd MM yyyy", Locale.ENGLISH);
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

convertedDate = df2.format(df1.parse(mDay+" "+(mMonth + 1)+" "+mYear));

}
catch (ParseException e) {
e.printStackTrace();
}
//Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_LONG).show();

year  = year1;
month = monthOfYear;
day   = dayOfMonth;


SimpleDateFormat format1 = new SimpleDateFormat("MM");
SimpleDateFormat format2 = new SimpleDateFormat("MMMM");
String monthname = null ;
try
{
monthname = format2.format(format1.parse(""+(monthOfYear + 1)));
}
catch (ParseException e)
{
e.printStackTrace();
}
System.out.println(monthname);

Tv_comletedate.setText(new StringBuilder()
.append(dayOfMonth).append(" ")
.append(monthname)
.append(" ").append(year1)
.append(" "));
Tv_month.setText(new StringBuilder().append(monthname).append(" "));
Tv_date.setText(new StringBuilder().append(dayOfMonth).append(" "));

Tv_comletedate_checkout.setText(new StringBuilder()
.append(monthname)
.append(" ").append(year1)
.append(" "));

Tv_complete_date_checkout.setText(new StringBuilder().append(dayOfMonth).append(" "));
Tv_month_checkout.setText(new StringBuilder().append(monthname).append(" "));

Tv_date_checkout.setText(new StringBuilder().append(dayOfMonth).append(" "));

counter=0;
Tv_value.setText("0");
Tv_noofnights.setText("0");
Tv_date_checkout.setText(dayOfMonth+"");
Tv_complete_date_checkout.setText(dayOfMonth+"");
Tv_month_checkout.setText(monthname+"");
Tv_comletedate_checkout.setText(monthname+" "+year1);
c.set(year, month, day);


              // updateDisplay();
}else{
Toast.makeText(getApplicationContext(), "kindly select a valid date", Toast.LENGTH_LONG).show();
convertedDate = "";
//updateDisplay();
//showDialog(DATE_DIALOG_ID);
}
}
};



public Date removeTime(Date date) {  
   Calendar cal = Calendar.getInstance();
   cal.setTime(date);
   cal.set(Calendar.HOUR_OF_DAY, 0);
   cal.set(Calendar.MINUTE, 0);
   cal.set(Calendar.SECOND, 0);
   cal.set(Calendar.MILLISECOND, 0);
   return cal.getTime();
}









// Date datePickerDate=new Date(selectedMonth,selectedDay,selectedYear);
// Date currentDate = new Date(m,d,y);
// Date curDate = new Date();
//
// datePickerDate.setYear(selectedYear-1900);
// datePickerDate.setMonth(selectedMonth);
// datePickerDate.setDate(selectedDay);
//
// Date datePickerDate1,curDate1;
// if(datePickerDate.getDate()==curDate.getDate() && datePickerDate.getMonth()==curDate.getMonth() && datePickerDate.getYear()==curDate.getYear())
// {
// datePickerDate.setHours(curDate.getHours());
// datePickerDate.setMinutes(curDate.getMinutes());
// datePickerDate.setSeconds(curDate.getSeconds());
// }
//Fri Jan 31 11:05:26 GMT+05:30 2014

// Date date,date1;
// String convertedTime,convertedTime1;
// try {
//
// SimpleDateFormat displayFormat = new SimpleDateFormat("dd-MM-yyyy");
// SimpleDateFormat parseFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
// date = parseFormat.parse(datePickerDate.toString());
// convertedTime = displayFormat.format(date);
//
// date1 = parseFormat.parse(curDate.toString());
// convertedTime1 = displayFormat.format(date);
//
// SimpleDateFormat format1=new SimpleDateFormat("dd-MM-yyyy");
// datePickerDate=format1.parse(convertedTime);
// curDate=format1.parse(convertedTime1);
// Log.d("date", "date change===>"+datePickerDate+"....... "+curDate);
//
// } catch (ParseException e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }  
//

// Log.d("date", "date to check for past===>"+datePickerDate+"....... "+curDate);
//
//
// if(curDate.before(datePickerDate))
// {
// Toast.makeText(itemsDetailActivity.this, "You can not select Past Date", Toast.LENGTH_LONG).show();
// Log.d("date", "date to check if else===>"+datePickerDate+"....... "+curDate);
// }
// else
// {
//// year  = selectedYear;
//// month = selectedMonth;
//// day   = selectedDay;
// Log.d("date", "date to check else===>"+datePickerDate+"....... "+curDate);
//
// SimpleDateFormat format1 = new SimpleDateFormat("MM");
// SimpleDateFormat format2 = new SimpleDateFormat("MMMM");
// String monthname = null ;
// try
// {
// monthname = format2.format(format1.parse(""+(selectedMonth + 1)));
// }
// catch (ParseException e)
// {
// e.printStackTrace();
// }
// System.out.println(monthname);
//
// Tv_comletedate.setText(new StringBuilder()
// .append(selectedDay).append(" ")
// .append(monthname)
// .append(" ").append(selectedYear)
// .append(" "));
// Tv_month.setText(new StringBuilder().append(monthname).append(" "));
// Tv_date.setText(new StringBuilder().append(selectedDay).append(" "));
//
// Tv_comletedate_checkout.setText(new StringBuilder()
// .append(monthname)
// .append(" ").append(selectedYear)
// .append(" "));
//
// Tv_complete_date_checkout.setText(new StringBuilder().append(selectedDay).append(" "));
// Tv_month_checkout.setText(new StringBuilder().append(monthname).append(" "));
//
// Tv_date_checkout.setText(new StringBuilder().append(selectedDay).append(" "));
//
// counter=0;
// Tv_value.setText("0");
// Tv_noofnights.setText("0");
// Tv_date_checkout.setText(selectedDay+"");
// Tv_complete_date_checkout.setText(selectedDay+"");
// Tv_month_checkout.setText(monthname+"");
// Tv_comletedate_checkout.setText(monthname+" "+selectedYear);
// }
//

//c.set(year, month, day);
//dp.updateDate(y, m, d);

//
//Log.d("date", "date to check for past===>"+datePickerDate+"....... "+curDate);
//
// //if (datePickerDate.before(curDate))
// //&& curDate.getDate()!=(datePickerDate.getDate()) && curDate.getMonth()!=(datePickerDate.getMonth()) && curDate.getYear()!=(datePickerDate.getYear())
// Calendar cur=Calendar.getInstance();
// cur.set(y, m, d);
//
// Calendar update1=Calendar.getInstance();
// update1.set(selectedDay, selectedMonth, selectedDay);
//
// datePickerDate=new Date(update1.MONTH,update1.DAY_OF_MONTH,update1.YEAR);
// Date curDate=new Date(cur.MONTH,cur.DAY_OF_MONTH,cur.YEAR);
//
// Log.d("date", "date to check for past===>"+datePickerDate+"....... "+curDate);

// if(datePickerDate.after(currentDate))
// {
// year  = selectedYear;
// month = selectedMonth;
// day   = selectedDay;
//
// SimpleDateFormat format1 = new SimpleDateFormat("MM");
// SimpleDateFormat format2 = new SimpleDateFormat("MMMM");
// String monthname = null ;
// try
// {
// monthname = format2.format(format1.parse(""+(month + 1)));
// }
// catch (ParseException e)
// {
// e.printStackTrace();
// }
// System.out.println(monthname);
//
// Tv_comletedate.setText(new StringBuilder()
// .append(day).append(" ")
// .append(monthname)
// .append(" ").append(year)
// .append(" "));
// Tv_month.setText(new StringBuilder().append(monthname).append(" "));
// Tv_date.setText(new StringBuilder().append(day).append(" "));
//
// Tv_comletedate_checkout.setText(new StringBuilder()
// .append(monthname)
// .append(" ").append(year)
// .append(" "));
//
// Tv_complete_date_checkout.setText(new StringBuilder().append(day).append(" "));
// Tv_month_checkout.setText(new StringBuilder().append(monthname).append(" "));
//
// Tv_date_checkout.setText(new StringBuilder().append(day).append(" "));
//
// counter=0;
// Tv_value.setText("0");
// Tv_noofnights.setText("0");
// Tv_date_checkout.setText(day+"");
// Tv_complete_date_checkout.setText(day+"");
// Tv_month_checkout.setText(monthname+"");
// Tv_comletedate_checkout.setText(monthname+" "+year);
// c.set(year, month, day);
// dp.updateDate(y, m, d);
// }

// else
// {
// Toast.makeText(itemsDetailActivity.this, "You can not select Past Date", Toast.LENGTH_LONG).show();
// dp.updateDate(y, m, d);}

@SuppressLint("NewApi")
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
if(v==Tv_items_back)
{
itemsDetailActivity.this.finish();
}
/*else if(v==Tv_map)
{
i=new Intent(this,MapActivity.class);
startActivity(i);
}*/

else if(v==Btn_select_rooms)
{
if(Tv_noofnights.getText().toString()=="0" || Tv_noofnights.getText().toString().equalsIgnoreCase("0"))
{
Toast.makeText(itemsDetailActivity.this, "Please select number of nights",Toast.LENGTH_LONG).show();
}
else if((Tv_spinner1.getText().toString()=="Adults" || Tv_spinner1.getText().toString().equalsIgnoreCase("Adults")) && (Tv_spinner2.getText().toString()=="Infants" || Tv_spinner2.getText().toString().equalsIgnoreCase("Infants")) && (Tv_spinner3.getText().toString()=="Child" || Tv_spinner3.getText().toString().equalsIgnoreCase("Child")))
{
Toast.makeText(itemsDetailActivity.this, "Please select guests",Toast.LENGTH_LONG).show();
}

else
{
String adult,infant,child;
if(spin1==true)
adult=Tv_spinner1.getText().toString();
else
adult="No";
if(spin2==true)
infant=Tv_spinner2.getText().toString();
else
infant="No";
if(spin3==true)
child=Tv_spinner3.getText().toString();
else
child="No";

i=new Intent(this,SelectRoomsActivity.class);
i.putExtra("itemName", itemArrayList.get(0).getitemName());
i.putExtra("checkindate", Tv_comletedate.getText().toString());
i.putExtra("checkoutdate", Tv_complete_date_checkout.getText().toString()+" "+Tv_comletedate_checkout.getText().toString());
i.putExtra("itemid", itemID);
i.putExtra("noOfnights", Tv_value.getText().toString());
i.putExtra("adult", adult);
i.putExtra("infant", infant);
i.putExtra("child", child);
i.putExtra("class", "item");
settings = getSharedPreferences("My_Pref", 0);
editor=settings.edit();
editor.putString("address", Tv_itemlocation.getText().toString());
editor.putString("infant", infant);
editor.putString("child", child);
editor.putString("adult", adult);

editor.commit();


startActivity(i);

//itemsDetailActivity.this.finish();
}
}
else if(v== Tv_checkindate||v==Tv_month||v==Tv_date||v==Tv_comletedate)
{
showDialog(DATE_PICKER_ID);
}
else if(v== Tv_checkoutdate||v==Tv_month_checkout||v==Tv_date_checkout||v==Tv_comletedate_checkout)
{
showDialog(DATE_PICKER_ID_OUT);
}

else if(v==Tv_spinner1||v==Imgv_spinner1)
{
AlertDialog.Builder builder = new AlertDialog.Builder(itemsDetailActivity.this);
builder.setTitle("Adults");
builder.setItems(numbers, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int item)
{
if(item==0){
Tv_spinner1.setText("Adults");
}else{
Tv_spinner1.setText(numbers[item]);
spin1=true;
}
}
});
AlertDialog alert = builder.create();
alert.show();
}

else if(v==txtheaderclose)
{
if((itemArrayList.get(0).getitemLatitude().equals("") || itemArrayList.get(0).getitemLatitude()=="")||(itemArrayList.get(0).getitemLongitude().equalsIgnoreCase("") || itemArrayList.get(0).getitemLongitude()==""))
{
Intent map2=new Intent(itemsDetailActivity.this,MapActivity.class);
map2.putExtra("latitude","17.385044");
map2.putExtra("longitude", "78.486671");
map2.putExtra("itemname", itemArrayList.get(0).getitemName());
startActivity(map2);
Toast.makeText(itemsDetailActivity.this, "Lat Long not available, so displays only trial map.", Toast.LENGTH_LONG).show();
}
else
{
Intent map2=new Intent(itemsDetailActivity.this,MapActivity.class);
map2.putExtra("latitude", itemArrayList.get(0).getitemLatitude());
map2.putExtra("longitude", itemArrayList.get(0).getitemLongitude());
map2.putExtra("itemname", itemArrayList.get(0).getitemName());
startActivity(map2);
}
}

else if(v==Tv_spinner2||v==Imgv_spinner2)
{
AlertDialog.Builder builder = new AlertDialog.Builder(itemsDetailActivity.this);
builder.setTitle("Infants");
builder.setItems(numbers, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(item==0){
Tv_spinner2.setText("Infants");
}else{
Tv_spinner2.setText(numbers[item]);
spin2=true;
}
}
});
AlertDialog alert = builder.create();
alert.show();


}
else if(v==Tv_spinner3||v==Imgv_spinner3)
{
AlertDialog.Builder builder = new AlertDialog.Builder(itemsDetailActivity.this);
builder.setTitle("Child");
builder.setItems(numbers, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(item==0){
Tv_spinner3.setText("Child");
}else{
Tv_spinner3.setText(numbers[item]);
spin3=true;
}
}
});
AlertDialog alert = builder.create();
alert.show();
}

else if(v==Imgv_plussign){
Log.d("src", "Increasing value...");
counter++;
stringVal = Integer.toString(counter);
Tv_value.setText(stringVal);
Tv_noofnights.setText(stringVal);
day= c.get(Calendar.DAY_OF_MONTH);

day++;
c.set(Calendar.DATE, day);
year  = c.get(Calendar.YEAR);
day= c.get(Calendar.DAY_OF_MONTH);
int lastDay = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
Log.d("System out", ""+lastDay);
String monthname = null ;
if(day>lastDay)
{
c.add(Calendar.MONTH, 1);
c.set(Calendar.DATE, 1);
c.set(Calendar.YEAR, year+1);
day= c.get(Calendar.DAY_OF_MONTH);
year  = c.get(Calendar.YEAR);
}

month = c.get(Calendar.MONTH);
// Show current date

SimpleDateFormat format1 = new SimpleDateFormat("MM");
SimpleDateFormat format2 = new SimpleDateFormat("MMMM");

try
{
monthname = format2.format(format1.parse(""+(month + 1)));
}
catch (ParseException e)
{
e.printStackTrace();
}
System.out.println(monthname);

stringdate= Integer.toString(day);

Tv_date_checkout.setText(stringdate);
Tv_complete_date_checkout.setText(stringdate);
Tv_month_checkout.setText(monthname);
Tv_comletedate_checkout.setText(monthname+" "+year);
// Tv_comletedate.setText(new StringBuilder()
// .append(monthname)
// .append(" ").append(year)
// .append(" "));
}

else if(v==Imgv_minussign){

Log.d("src", "Decreasing value...");
if(counter>0){

counter--;
stringVal = Integer.toString(counter);
Tv_value.setText(stringVal);
Tv_noofnights.setText(stringVal);

day--;
c.set(Calendar.DATE, day);
day= c.get(Calendar.DAY_OF_MONTH);
int lastDay = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
Log.d("System out", ""+lastDay);
String monthname = null ;
if(day>lastDay){
c.add(Calendar.MONTH, -1);
c.set(Calendar.DATE, -1);
day= c.get(Calendar.DAY_OF_MONTH);
year  = c.get(Calendar.YEAR);

}

month = c.get(Calendar.MONTH);
// Show current date

SimpleDateFormat format1 = new SimpleDateFormat("MM");
SimpleDateFormat format2 = new SimpleDateFormat("MMMM");

try
{
monthname = format2.format(format1.parse(""+(month + 1)));
}
catch (ParseException e)
{
e.printStackTrace();
}
System.out.println(monthname);

stringdate= Integer.toString(day);
Tv_date_checkout.setText(stringdate);
Tv_complete_date_checkout.setText(stringdate);
Tv_month_checkout.setText(monthname);
Tv_comletedate_checkout.setText(monthname+" "+year);




// stringdate= Integer.toString(day);
// Tv_date_checkout.setText(stringdate);
// Tv_complete_date_checkout.setText(stringdate);
}
}
else if(v==Tv_item_description)
{
Intent desc=new Intent(itemsDetailActivity.this,AboutUsActivity.class);
desc.putExtra("itemId", itemID);
desc.putExtra("itemName",itemArrayList.get(0).getitemName());
Log.i("System out","item Name --->: "+itemName);
startActivity(desc);

}

}

private String getCompleteAddressString(double longitude, double latitude) {
String strAdd = "";
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(longitude, latitude, 1);
if (addresses != null) {
Address returnedAddress = addresses.get(0);
StringBuilder strReturnedAddress = new StringBuilder("");

for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
}
strAdd = strReturnedAddress.toString();
Log.w("My Current loction address", "----------------" + strAdd);
} else {
Log.w("My Current loction address", "No Address returned!");
}
} catch (Exception e) {
e.printStackTrace();
Log.w("My Current loction address", "Canont get Address!");
}
return strAdd;
}
/*@Override
public void onItemClick(QuickAction source, int pos, int actionId)
{

Toast.makeText(itemsDetailActivity.this, "values"+actionId+" "+pos+" ", Toast.LENGTH_LONG).show();
}*/

private Bitmap LoadImage(String URL, BitmapFactory.Options options) {
Bitmap bitmap = null;
InputStream in = null;
try {
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in, null, options);
in.close();
} catch (NullPointerException e) {
// TODO: handle exception
e.printStackTrace();
}
} catch (IOException e1) {
e1.printStackTrace();
}
return bitmap;
}

private InputStream OpenHttpConnection(String strURL) throws IOException {
InputStream inputStream = null;
URL url = new URL(strURL);
URLConnection conn = url.openConnection();

try {
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setRequestMethod("GET");
httpConn.connect();

if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
inputStream = httpConn.getInputStream();
}
} catch (Exception ex) {
}
return inputStream;
}
public void postOnWall(String msg)
{
String access_token = preferences.getString("access_token", null);
long expires = preferences.getLong("access_expires", 0);
if (access_token != null) {
facebook.setAccessToken(access_token);
}
if (expires != 0) {
facebook.setAccessExpires(expires);
}

if (facebook.isSessionValid()) {

try {
Bundle parameters = new Bundle();
String link = msg;
parameters.putString("picture", link);
parameters.putString("name", getString(R.string.app_name)+" "+itemname);
parameters.putString("description", shareArray.get(1).getSettings_value().replace("{itemName}", itemname));
parameters.putString("caption", " ");
facebook.dialog(itemsDetailActivity.this, "stream.publish",
parameters, new DialogListener() {
// @Override
public void onComplete(Bundle values) {

Toast.makeText(itemsDetailActivity.this,
"Facebook sharing done.",
Toast.LENGTH_LONG).show();
setResult(RESULT_OK);
}

// @Override
public void onFacebookError(FacebookError error) {
}

// @Override
public void onError(DialogError e) {
}

// @Override
public void onCancel() {
itemsDetailActivity.this.finish();
}
});// "stream.publish" is an API call
} catch (Exception e) {
// TODO: handle exception
}
} else {
new FbLoginCommon(itemsDetailActivity.this, msg);
}

}


@Override
protected Dialog onCreateDialog(int id) {

if (id==DATE_PICKER_ID)
{
Log.d("Hello", "====>yes in call dialog");

// Calendar c1 = Calendar.getInstance();
// year  = c1.get(Calendar.YEAR);
// month = c1.get(Calendar.MONTH);
// day   = c1.get(Calendar.DAY_OF_MONTH);
// m=month;
// d=day;
// y=year;
//
// dp=new DatePickerDialog(this, pickerListener, year, month, day);
//    return dp;

switch (id)
{
        case DATE_PICKER_ID:

        year  = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day   = c.get(Calendar.DAY_OF_MONTH);
// m=month;
// d=day;
// y=year;
       
        dp=new DatePickerDialog(this,
                        pickerListener,
                        year, month, day);
        return dp;
     
        }
     

}
if (id != DIALOG_GET_GOOGLE_PLAY_SERVICES) {
return super.onCreateDialog(id);
}

int available = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(this);
if (available == ConnectionResult.SUCCESS) {
return null;
}
if (GooglePlayServicesUtil.isUserRecoverableError(available)) {
return GooglePlayServicesUtil.getErrorDialog(available, this,
REQUEST_CODE_GET_GOOGLE_PLAY_SERVICES, this);
}
return new AlertDialog.Builder(this)
.setMessage(R.string.plus_generic_error).setCancelable(true)
.setOnCancelListener(this).create();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(STATE_SHARING, mSharing);
}

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
switch (requestCode) {
case REQUEST_CODE_SIGN_IN:
case REQUEST_CODE_GET_GOOGLE_PLAY_SERVICES:
handleResult(resultCode);
break;

case REQUEST_CODE_INTERACTIVE_POST:
mSharing = false;
if (resultCode != RESULT_OK) {
Log.e(TAG, "Failed to create interactive post");
}
break;
}
}

private void handleResult(int resultCode)
{
if (resultCode == RESULT_OK) {
// onActivityResult is called after onStart (but onStart is not
// guaranteed to be called while signing in), so we should make
// sure we're not already connecting before we call connect again.
if (!mPlusClient.isConnecting() && !mPlusClient.isConnected()) {
mPlusClient.connect();
}
} else {
Log.e(TAG, "Unable to sign the user in.");
finish();
}
}

private Intent getInteractivePostIntent() {

try {
BitmapFactory.Options bmOptions;
bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
bm = LoadImage(getString(R.string.url_image_items)+jsonParserData.getitemImage(), bmOptions);
extStorageDirectory = Environment.getExternalStorageDirectory()
.toString() + "/image_folder";

OutputStream outStream = null;

File wallpaperDirectory = new File(extStorageDirectory);
wallpaperDirectory.mkdirs();
outputFile = new File(wallpaperDirectory, "image.PNG");

outStream = new FileOutputStream(outputFile);

bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();

} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

String action = "/?view=true";
Uri callToActionUrl = Uri
.parse(getString(R.string.plus_example_deep_link_url) + action);
String callToActionDeepLinkId = getString(R.string.plus_example_deep_link_id)
+ action;
Log.d("hello", "----->iteractivepost"+getString(R.string.url_image_items)+getitemImage);
PlusShare.Builder builder = new PlusShare.Builder(itemsDetailActivity.this);

builder.setText(""+shareArray.get(2).getSettings_value().replace("{itemName}", itemname));
builder.setType("text/plain");
builder.setContentDeepLinkId("jpg/png", /** Deep-link identifier */
getString(R.string.app_name), /** Snippet title */
" ",
Uri.parse(getString(R.string.url_image_items)+getitemImage));

return builder.getIntent();
}

@Override
public void onConnected(Bundle connectionHint)
{
if (!mSharing) {
// The share button hasn't been clicked yet.
return;
}
String accountName = mPlusClient.getAccountName();
Toast.makeText(this, accountName + " is connected.", Toast.LENGTH_LONG)
.show();
mSharing = false;
startActivityForResult(getInteractivePostIntent(),
REQUEST_CODE_INTERACTIVE_POST);
}

@Override
public void onDisconnected() {
// Do nothing.
}

@Override
public void onConnectionFailed(ConnectionResult result) {
if (!mSharing) {
return;
}

try {
result.startResolutionForResult(this, REQUEST_CODE_SIGN_IN);
} catch (IntentSender.SendIntentException e) {
// Try to connect again and get another intent to start.
mPlusClient.connect();
}
}

@Override
public void onCancel(DialogInterface dialogInterface) {
Log.e(TAG, "Unable to sign the user in.");
finish();
}


// private Intent generateCustomChooserIntent(Intent prototype,
//            String[] forbiddenChoices)
//    {
//        List<Intent> targetedShareIntents = new ArrayList<Intent>();
//        List<HashMap<String, String>> intentMetaInfo = new ArrayList<HashMap<String, String>>();
//        Intent chooserIntent;
//
//        Intent dummy = new Intent(prototype.getAction());
//        dummy.setType(prototype.getType());
//        List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(dummy,0);
//
//        if (!resInfo.isEmpty())
//        {
//            for (ResolveInfo resolveInfo : resInfo)
//            {
//                if (resolveInfo.activityInfo == null
//                        || Arrays.asList(forbiddenChoices).contains(
//                                resolveInfo.activityInfo.packageName))
//                    continue;
//                //Get all the posible sharers
//                HashMap<String, String> info = new HashMap<String, String>();
//                info.put("packageName", resolveInfo.activityInfo.packageName);
//                info.put("className", resolveInfo.activityInfo.name);
//                String appName = String.valueOf(resolveInfo.activityInfo
//                        .loadLabel(getPackageManager()));
//                info.put("simpleName", appName);
//                //Add only what we want
//                if (Arrays.asList(nameOfAppsToShareWith).contains(
//                        appName.toLowerCase()))
//                {
//                    intentMetaInfo.add(info);
//                }
//            }
//
//            if (!intentMetaInfo.isEmpty())
//            {
//                // sorting for nice readability
//                Collections.sort(intentMetaInfo,
//                        new Comparator<HashMap<String, String>>()
//                        {
//                            @Override public int compare(
//                                    HashMap<String, String> map,
//                                    HashMap<String, String> map2)
//                            {
//                                return map.get("simpleName").compareTo(
//                                        map2.get("simpleName"));
//                            }
//                        });
//
//                // create the custom intent list
//                for (HashMap<String, String> metaInfo : intentMetaInfo)
//                {
//                    Intent targetedShareIntent = (Intent) prototype.clone();
//                    targetedShareIntent.setPackage(metaInfo.get("packageName"));
//                    targetedShareIntent.setClassName(
//                            metaInfo.get("packageName"),
//                            metaInfo.get("className"));
//                    targetedShareIntents.add(targetedShareIntent);
//                }
//                //String shareVia = getString(R.string.offer_share_via);
//                String shareVia = "hello share this";
//                String shareTitle = shareVia.substring(0, 1).toUpperCase()
//                        + shareVia.substring(1);
//                chooserIntent = Intent.createChooser(targetedShareIntents
//                        .remove(targetedShareIntents.size() - 1), shareTitle);
//                chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
//                        targetedShareIntents.toArray(new Parcelable[] {}));
//                return chooserIntent;
//            }
//        }
//
//        return Intent.createChooser(prototype,"hello share this"
//                /*getString(R.string.offer_share_via)*/);
//    }

@SuppressWarnings("deprecation")
@SuppressLint("SimpleDateFormat")
public Date formatedate(String date1)
{
String[] d=date1.split(" ");
Log.d("date", "formatted date"+d[0]+" "+d[1]+" "+d[2]+" "+d[3]);

SimpleDateFormat originalFormatcin = new SimpleDateFormat("yyyy-MM-dd");
   SimpleDateFormat targetFormatcin = new SimpleDateFormat("EEE dd MMM yyyy");

    Date datecin,dt=null;
  String cindate="";
  try
  {
  datecin = targetFormatcin.parse(date1);
      cindate=originalFormatcin.format(datecin);
      dt=originalFormatcin.parse(cindate);
      return dt;
   }
  catch (ParseException ex) {}

  return dt;
}


}


***********************************************************************************************************************

FileCache.java

Note: To image handle in JSON

package com.rakesht;

import java.io.File;

import android.content.Context;

public class FileCache {
 
    private File cacheDir;
 
    public FileCache(Context context){
        //Find the dir to save cached images
        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
            cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"CF");
        else
            cacheDir=context.getCacheDir();
        if(!cacheDir.exists())
            cacheDir.mkdirs();
    }
 
    public File getFile(String url){
        //I identify images by hashcode. Not a perfect solution, good for the demo.
        String filename=String.valueOf(url.hashCode());
        //Another possible solution (thanks to grantland)
        //String filename = URLEncoder.encode(url);
        File f = new File(cacheDir, filename);
        return f;
     
    }
 
    public void clear(){
        File[] files=cacheDir.listFiles();
        if(files==null)
            return;
        for(File f:files)
            f.delete();
    }

}


***************************************************************************************

ImageLoader.java

package com.rakesht;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Collections;
import java.util.Map;
import java.util.WeakHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.util.Log;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class ImageLoader {

MemoryCache memoryCache = new MemoryCache();
FileCache fileCache;
private final Map<ImageView, String> imageViews = Collections
.synchronizedMap(new WeakHashMap<ImageView, String>());
ExecutorService executorService;
Thread th;
Context context;
AnimationListener listener;
SharedPreferences preferences;

public ImageLoader(Context context) {
fileCache = new FileCache(context);
executorService = Executors.newFixedThreadPool(5);
this.context = context;
preferences = context.getSharedPreferences("My_Pref", 0);
this.context = context;
listener = new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
// System.out.println("End Animation!");
// load_animations();
}
};
}

final int stub_id = R.drawable.noimage1;
final int stub_id1 = R.drawable.noimage1;

public void DisplayImage(String url, ImageView imageView) {

Log.i("System out", "in DisplayImage :" + url);

imageViews.put(imageView, url);

Bitmap bitmap = memoryCache.get(url);
if (bitmap != null) {
// Log.i("System out", "in DisplayImage:local");
imageView.setBackgroundDrawable(new BitmapDrawable(bitmap));
} else {
// Log.i("System out", "in DisplayImage:web");
imageView.setBackgroundDrawable(context.getResources().getDrawable(
stub_id));
// new AnimationUtils();
// Animation rotation = AnimationUtils.loadAnimation(context,
// R.anim.rotation);
// rotation.setAnimationListener(listener);
// imageView.startAnimation(rotation);
queuePhoto(url, imageView);

}
}

private void queuePhoto(String url, ImageView imageView) {
PhotoToLoad p = new PhotoToLoad(url, imageView);
executorService.submit(new PhotosLoader(p));
}

private Bitmap getBitmap(String url) {
File f = fileCache.getFile(url);

// from SD cache
Bitmap b = decodeFile(f);
if (b != null)
return b;

// from web
try {
Bitmap bitmap = null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl
.openConnection();
/*
* conn.setConnectTimeout(30000); conn.setReadTimeout(30000);
*/
// conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f);
return bitmap;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}

// decodes image and scales it to reduce memory consumption
private Bitmap decodeFile(File f) {
try {
/*
* // decode image size BitmapFactory.Options o = new
* BitmapFactory.Options(); o.inJustDecodeBounds = true;
* BitmapFactory.decodeStream(new FileInputStream(f), null, o);
*
* // Find the correct scale value. It should be the power of 2.
* final int REQUIRED_SIZE = 70; int width_tmp = o.outWidth,
* height_tmp = o.outHeight; int scale = 1; while (true) { if
* (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE)
* break; width_tmp /= 2; height_tmp /= 2; scale++; }
*
* // decode with inSampleSize BitmapFactory.Options o2 = new
* BitmapFactory.Options(); o2.inSampleSize = scale;
*/
return BitmapFactory.decodeStream(new FileInputStream(f));
} catch (FileNotFoundException e) {
}
return null;
}

// Task for the queue
private class PhotoToLoad {
public String url;
public ImageView imageView;

public PhotoToLoad(String u, ImageView i) {
url = u;
imageView = i;
}
}

class PhotosLoader implements Runnable {
PhotoToLoad photoToLoad;

PhotosLoader(PhotoToLoad photoToLoad) {
this.photoToLoad = photoToLoad;
}

@Override
public void run() {
if (imageViewReused(photoToLoad))
return;
Bitmap bmp = getBitmap(photoToLoad.url);
memoryCache.put(photoToLoad.url, bmp);
if (imageViewReused(photoToLoad))
return;
BitmapDisplayer bd = new BitmapDisplayer(bmp, photoToLoad);
Activity a = (Activity) photoToLoad.imageView.getContext();
a.runOnUiThread(bd);
}
}

boolean imageViewReused(PhotoToLoad photoToLoad) {
String tag = imageViews.get(photoToLoad.imageView);
if (tag == null || !tag.equals(photoToLoad.url))
return true;
return false;
}

// Used to display bitmap in the UI thread
class BitmapDisplayer implements Runnable {
Bitmap bitmap;
PhotoToLoad photoToLoad;

public BitmapDisplayer(Bitmap b, PhotoToLoad p) {
bitmap = b;
photoToLoad = p;
}

public void run() {
Log.d("System out", "111111111");
photoToLoad.imageView.clearAnimation();
if (imageViewReused(photoToLoad))
return;
if (bitmap != null)
photoToLoad.imageView.setBackgroundDrawable(new BitmapDrawable(
bitmap));
else {
Log.d("System out", "22222222222");
if (preferences.getBoolean("img_contact", false)) {
photoToLoad.imageView.setBackgroundDrawable(context
.getResources().getDrawable(stub_id));
} else {
photoToLoad.imageView.setBackgroundDrawable(context
.getResources().getDrawable(stub_id1));
}
}

}
}

public void clearCache() {
memoryCache.clear();
fileCache.clear();
}

}


********************************************************************************

MemoryCache.java



package com.rakesht;

import java.lang.ref.SoftReference;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import android.graphics.Bitmap;

public class MemoryCache {
    private Map<String, SoftReference<Bitmap>> cache=Collections.synchronizedMap(new HashMap<String, SoftReference<Bitmap>>());
    
    public Bitmap get(String id){
        if(!cache.containsKey(id))
            return null;
        SoftReference<Bitmap> ref=cache.get(id);
        return ref.get();
    }
    
    public void put(String id, Bitmap bitmap){
        cache.put(id, new SoftReference<Bitmap>(bitmap));
    }

    public void clear() {
        cache.clear();
    }
}

******************************************************************************************************************************

Utils.java


package com.rakesht;

import java.io.InputStream;
import java.io.OutputStream;

public class Utils  {
    public static void CopyStream(InputStream is, OutputStream os)
    {
        final int buffer_size=1024;
        try
        {
            byte[] bytes=new byte[buffer_size];
            for(;;)
            {
              int count=is.read(bytes, 0, buffer_size);
              if(count==-1)
                  break;
              os.write(bytes, 0, count);
            }
        }
        catch(Exception ex){}
    }
}


************************************************************************************************************************

string.xml

//image urel in string file
<string name="url_image_items">http://http://100.101.130.111/rakesh/admin/images/upload/itemss/</string>
      <string name="url_image_item">http://http://100.101.130.111/rakesh/images/item/</string>
      <string name="url_image_offer">http://http://100.101.130.111/rakesh/images/offer/</string>
      <string name="url_image_gallery">http://http://100.101.130.111/rakesh/images/gallery/</string>



No comments:

Post a Comment