Wednesday 17 July 2013

Android Avoid Showing Last Charecter Typed in PassWord Filed.

Hello Frieds,
By this post we are going to learn about how to Avoid Showing Last Charecter Typed in PassWord Filed.

Use the following code to achieve this.

 To show text as password we should use the following attribute in EditText : android:inputType="textPassword"

To avoid showing last text typed should use the following attribute in Edittext :

android:password="true"

So Completed Edit text will be look like this.

<EditText android:textSize="18.0sp" android:id="@+id/mypassword" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:layout_marginRight="10.0dip" android:password="true" android:inputType="textPassword" />

Hope this helps. Happy Coding.

Monday 8 July 2013

Android PopupWindow example in Listview.

Hi All ,

By this post we are going to learn about how to use Android Popup Window in listview, gridview, Your Custom Alert etc.

Whats mean by Popup Window:
 android.widget.PopupWindow  can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity.

I am going to explain how to use popupwindow in list view. For example in listview item you have details button means you can use this popupwindow to show those details in this window. Lets see how to do it.

Step 1 : Main.xml

You can use either list view or any other Composite listviews:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="vertical"
        >
      <ListView
          android:id="@+id/listView1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >
      </ListView>

      </LinearLayout>

</RelativeLayout>

Step 2 : listviewchild.xml
You can design your own custom view.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linear_item"
    android:layout_width="fill_parent"
    android:layout_height="100dp"   
   
  android:gravity="right"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="15dp"       
        android:layout_toRightOf="@+id/textview_name"
        android:src="@drawable/ic_launcher" />
   
</RelativeLayout>


Step 3 :

Your MainActivity.java

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;

public class MainActivity extends Activity {

    String TAG = "MainActivity.java";

    String popUpContents[];
    PopupWindow popupWindowDogs;  
    ListView listView1;

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

        listView1=(ListView)findViewById(R.id.listView1);
        listView1.setAdapter(new MyAddapter(MainActivity.this)); // binding the list view.
        /*
         * initialize pop up window items list
         */
      
        // add items on the array dynamically
        // format is Company Name:: ID
        List<String> dogsList = new ArrayList<String>();
        dogsList.add("Samsung");
        dogsList.add("Google");
        dogsList.add("Yahoo");
        dogsList.add("Microsoft");

        // convert to simple array
        popUpContents = new String[dogsList.size()];
        dogsList.toArray(popUpContents);

        /*
         * initialize pop up window
         */
        popupWindowDogs = popupWindowDogs();

      
    }

    /*
     *
     */
    public PopupWindow popupWindowDogs() {

        // initialize a pop up window type
        PopupWindow popupWindow = new PopupWindow(this);

        // the drop down list is a list view
        ListView listViewDogs = new ListView(this);
      
        // set our adapter and pass our pop up window contents
        listViewDogs.setAdapter(dogsAdapter(popUpContents));
      
        // set the item click listener
        listViewDogs.setOnItemClickListener(new DogsDropdownOnItemClickListener());

        // some other visual settings
        popupWindow.setFocusable(true);
        popupWindow.setWidth(250);
        popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
      
        // set the list view as pop up window content
        popupWindow.setContentView(listViewDogs);

        return popupWindow;
    }

    /*
     * adapter where the list values will be set
     */
    private ArrayAdapter<String> dogsAdapter(String dogsArray[]) {

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dogsArray) {

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                // setting the ID and text for every items in the list
                          
                String text = getItem(position);              

                // visual settings for the list item
                TextView listItem = new TextView(MainActivity.this);

                listItem.setText(text);
                listItem.setTag(position);
                listItem.setTextSize(22);
                listItem.setPadding(10, 10, 10, 10);
                listItem.setTextColor(Color.WHITE);
              
                return listItem;
            }
        };
      
        return adapter;
    }
}

Step 4:
Your Adapter class


class MyAddapter extends BaseAdapter {
        Context rContext;
        private LayoutInflater rInflater;
        private Activity activity;

        public MyAddapter(Context c) {

            rInflater = LayoutInflater.from(c);

            rContext = c;

        }     
              
        public MyAddapter(Activity imagebinding) {
            // TODO Auto-generated constructor stub

            activity = imagebinding;       
           
            rContext = imagebinding;
            rInflater = LayoutInflater.from(imagebinding);
            rContext = imagebinding;
            rInflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       

           
        }
       
        @Override
        public int getCount() {
            // TODO Auto-generated method stub   
           
                       
            return 10;
        }

        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {
            // TODO Auto-generated method stub
            convertView = rInflater.inflate(R.layout.child, null);
            final MyDat mydat = new MyDat();   
           
            mydat.imageView1=(ImageView)convertView.findViewById(R.id.imageView1);
            mydat.imageView1.setOnClickListener(new OnClickListener() {
               
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    popupWindowDogs.showAsDropDown(v, -5, 0);
                   
                }
            });
           
            return convertView;
        }
                             
        class MyDat {
           
                   
           
            ImageView imageView1;
           
           
        }

    }
 
Step 5 :
Your Popup Windows items Click listener





You can use this if you want proceed furtherly for activity transitions.

import android.content.Context;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;

public class DogsDropdownOnItemClickListener implements OnItemClickListener {
   
    @Override
    public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {

        // get the context and main activity to access variables
        Context mContext = v.getContext();
        MainActivity mainActivity = ((MainActivity) mContext);
       
        // add some animation when a list item was clicked
        Animation fadeInAnimation = AnimationUtils.loadAnimation(v.getContext(), android.R.anim.fade_in);
        fadeInAnimation.setDuration(10);
        v.startAnimation(fadeInAnimation);
       
        // dismiss the pop up
        mainActivity.popupWindowDogs.dismiss();
       
        // get the text and set it as the button text
       
        Toast.makeText(mContext, "Selected Positon is: " + arg2, 100).show();
       
       
    }

}
Screen Shots: 






Hope this helps you. Comments are welcome. Happy coding.       




    


Friday 5 July 2013

Android How to Set up google map api v2


Hi Friends ,

By this post we are going to learn about how to set up Android Google map V2 .

Important thing in this set up is "Get your SHA1 fingerprint " . So we will see the latest and simplest way .

1. Just  Create one New Android Application .with Latest Google Map Api as the Target.

2.        Import Google Play Services Lib  . Which will be available in below path of your Android SDK

android-sdk\extras\google\google_play_services\libproject\google-play-services_lib

3. Add google play service lib to your project by right clicking on your project  properties\android and you will see little button on the buttom-right "add". Just add the google play service lib and click ok. like below image.

 4.  How to get SHA1 fingerprint KEY
Go to:
Window\Preferences   Android\Build    
 find your SHA1 fingerprint and copy that.See the Reference Image . Copy the SHA1 finger print for future use.

5.  Go to Google Apis Console Window.  See below for Reference.
6.Create New project .See below for Reference.
 

7. Activate the option "Google Maps Android API V2"  See below for Reference. 
8. Click "Create New Android Key" . You will get below Popup.



9. Enter your SHA1 fingerprint(Which you have saved earlier )  followed by '  ; ' and your application package name.

like this . 40:8F:34:9C:F2:FC:7A: ; com.rajesh.map.sample

After pasting click the Create button.

10. The following permission are Must for Map v2 project.

 <permission
        android:name="com.example.osman.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
<uses-permission android:name="com.example.osman.permission.MAPS_RECEIVE"/>
 
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 
<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/> 
 
Along with the you must add the below lines  
      <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="YOUR_KEY"/>// the key is which you have got from step 9. 

Add above line right before the </application> tag 


Hope this helps you.  Happy Coding .


Android How to Get Address From Google Services.

Hi All,
By this post we are going to learn about how to get Address from Google Services instead of Default Geo Coder.

Step 1. 
For this we need Internet Permission.

<uses-permission android:name="android.permission.INTERNET"/>

Step 2.
Here is the Class to get The Address from Google Services.


import java.io.IOException;
import java.io.InputStream;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


public class FormattedAddress {

    public  String getAddress(String Source, String Destination) {

       
       
        StringBuilder stringBuilder = new StringBuilder();
        String duration_final_value = "";
       
        try {

            Source = Source.replaceAll(" ", "%20");
            Destination = Destination.replaceAll(" ", "%20");

            HttpPost httppost = new HttpPost(
                    "http://maps.googleapis.com/maps/api/geocode/json?latlng="+Source+","+Destination+"&sensor=false");//&mode=walking,driving
            HttpClient client = new DefaultHttpClient();
            HttpResponse response;
            stringBuilder = new StringBuilder();

            response = client.execute(httppost);
            HttpEntity entity = response.getEntity();
            InputStream stream = entity.getContent();
            int b;
            while ((b = stream.read()) != -1) {
                stringBuilder.append((char) b);
            }
        } catch (ClientProtocolException e) {         
        } catch (IOException e) {
        }

       
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject = new JSONObject(stringBuilder.toString()); // first we need to get the full json object which google returns   
           
            JSONArray routes_Array = jsonObject.getJSONArray("results"); // in that first we need to go into the routes array
           
            JSONObject routes_object = (JSONObject) routes_Array.get(0); // in that we need first item
            duration_final_value= routes_object.getString("formatted_address").toString();  // then go into the legs array
           
            System.out.println(" Address " + duration_final_value);
               

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

        return duration_final_value;
    }
}

Step 3:
Just call the above public method from your activity like below by passing the Latitude and Longitude

              FormattedAddress tel=new FormattedAddress();
            foundAddress= tel.getAddress(String.valueOf(latitude), String.valueOf(longitude));
            here latitude, longitude are long values.

hope this helps you.
Happy Coding.

Thursday 4 July 2013

Custom Font Text view and Button for Android.

Hi All,

By this post we are going to learn about how to implement the custom fornt for textviews and Buttons.  I am going to teach you the very simple method to do it.


Step 1.

Use this class for Custom Font Text view style.
 Download your ttf file and paste it in your assests folder.

import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;

public class CustomFontTextView extends TextView {

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

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

    public CustomFontTextView(Context context) {
        super(context);
        init();
    }

    private void init() {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
                                            "your font.ttf");
        setTypeface(tf);
    }

}

Step 2 

then define your text view like below.

<com.example.customfont.CustomFontTextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content" 
                        android:text="Custom Font Test"
                        android:textStyle="normal" />

For Button  Your Custom Class should entends Button instead of Text View.
So your code should be something like below.


import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.Button;
import android.widget.TextView;

public class CustomFontButton extends Button {

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

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

    public CustomFontButton(Context context) {
        super(context);
        init();
    }

    private void init() {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
                                               "Roboto-Light.ttf");
        setTypeface(tf);
    }

}


There is no need to mention your custom font TextView/Button  any where else . This will work fine. Happy coding.