Monday 6 May 2013

Android Update a ui using BroadcastReceiver | Android BroadcastReceiver Example | Android Service


Hello Friends , Have you thinking about calling the service in your android app.
Trying to start service when you receive some type of notifiaction or need to refresh a view
or activty after getting new data from web service or need to refresh
your activity after every few second of time interval.

Yes , this android article help you a lot. In my case I wanted to refresh my activity silently
whenever I received new data  in my web service response.

For this I used Broadcast receiver and services and things work like charm to me  :)


1.What is Broadcast receiver??
  A broadcast receiver  is an Android component which allows you to register
  for system or application events.

 Let’s start with BroadcastReceiver: Here we will try to refresh our view via
 Android service call.


First of all we need to define private variable in our Activity:
//---------------------------

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
  @Override
   public void onReceive(Context context, Intent intent) {
updateDate(intent);
   }
};

//---------------------------

2.Then we override methods onResume() where our broadcast receiver will be registered
  and also onPause() where will our receiver be unregistered:

//---------------------------
@Override
public void onResume() {
    super.onResume();
    registerReceiver(broadcastReceiver, new IntentFilter(
MyService.BROADCAST_ACTION));
}

@Override
public void onPause() {
super.onPause();
// unregisterReceiver(broadcastReceiver);
}
//---------------------------

3.Now we can start our service (onStart), send a broadcast message and we will show a toast message.
   And also update the UI afeter ever few(7 second) second.

//---------------------------
package com.mukesh.services;

import java.util.Date;

import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;

public class MyService extends Service {
        public static final String BROADCAST_ACTION = "com.mukesh.service";
        private final Handler handler = new Handler();
        Intent intent;
        int counter = 0;

        @Override
        public void onCreate() {
                // Called on service created
                intent = new Intent(BROADCAST_ACTION);
        }

        @Override
        public void onDestroy() {
                // Called on service stopped
                stopService(intent);
        }

        @Override
        public void onStart(Intent intent, int startid) {
                int i = 0;
                while (i <= 2) {
                        if (i > 1) {
                                i++;
                                this.onDestroy();
                        } else {
                                counter = i;
                                i++;
                                handler.removeCallbacks(sendUpdatesToUI);
                                handler.postDelayed(sendUpdatesToUI, 1 * 1000); // 1 sec
                        }

                }

        }

        private Runnable sendUpdatesToUI = new Runnable() {
                public void run() {
                        DisplayLoggingInfo();
                        handler.postDelayed(this, 7 * 1000); // 7 sec
                }
        };

        private void DisplayLoggingInfo() {

                intent.putExtra("time", new Date().toLocaleString());
                intent.putExtra("counter", String.valueOf(counter));
                sendBroadcast(intent);
                stopService(intent);
        }

        public static boolean isRunning() {
                return true;
        }

        @Override
        public IBinder onBind(Intent intent) {
                return null;
        }
}


//---------------------------
4. Don’t forget to add this service declaration in your AndroidManifest.xml in
    order to be set up properly:

//----------------------------

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.examples"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".SimpleCalendarViewActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

//----------------------------


Download Source code:
Android Service Demo


Enjoy Coding :)

Friday 12 April 2013

Dynamic Swipe View Example In Android | Android Custom Swipe view


Hello Friends,

Have you searching  for dynamic swipe view on list view Item ??
Actually my need is to display the list view item one by one on swiping it from left
to right or right to left.

In my application my need is to show an listview items i.e an profile image(Imageview), a
TextView fortitle , another ImageView and a textview which contains some description.
This items swipe left to right and right to left based on the size of listview.

We can do this in two ways:
    1. Using Android View flipper : By using view flipper first we have  to make the
        complete xml programatically using java, because we don't know the exact size
        of ListView . So showing the item on by one we need to make the xml in our java
        code, which is toughest job.

   2. Using Android GestureListener :    I am using this one because in this there is
       no need to make the in your code. We just need to bind the view on left and right
       gesture.

 Today , I am going to share my complete source code for dynamic swipe view in
 android. Using this we can display the details of list view item on swipe.

dynamic swipe view
swipe gesture


Code:

1.actvity_main.xml

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/background_dark"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/tabBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/blue_gradient_header"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/txtTitle"
            android:layout_width="wrap_content"
            android:layout_height="32dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="Dynamic swipe View"
            android:textColor="@android:color/white"
            android:textSize="22sp"
            android:textStyle="bold"
            android:typeface="sans" >
        </TextView>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/tabBar" >

        <TextView
            android:id="@+id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/image"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/image"
            android:background="#AAff0000"
            android:padding="10dp"
            android:text="Mukesh"
            android:textSize="16sp"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/image"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="14dp"
            android:background="@drawable/mukesh"
            android:padding="5dp"
            android:scaleType="fitXY" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_alignLeft="@+id/image"
            android:layout_below="@+id/image"
            android:layout_marginBottom="30dp"
            android:layout_marginTop="10dp" />

        <TextView
            android:id="@+id/desc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/imageView1"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:padding="8dp"
            android:text="Hello ! this is an Sample code.My need is to show listview Item on swipe, one by one.For this I am using gessture listner and Fling animation."
            android:textSize="14sp"
            android:textStyle="bold" />
    </RelativeLayout>

</RelativeLayout>


2.MainActivity.Java

package com.example.fling;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewFlipper;

public class MainActivity extends Activity implements OnGestureListener {
 protected GestureDetector gestureScanner;
 protected ViewFlipper vf;
 private static final int SWIPE_MIN_DISTANCE = 120;
 private static final int SWIPE_MAX_OFF_PATH = 250;
 private static final int SWIPE_THRESHOLD_VELOCITY = 200;
 TextView tv;
 String[] name = { "Mukesh", "Hitesh", "Rohit", "Arshad" };
 int[] color = { Color.BLUE, Color.RED, Color.CYAN, Color.GREEN };
 int[] background = { Color.RED, Color.CYAN, Color.MAGENTA, Color.BLUE };
 int[] d = { R.drawable.mukesh, R.drawable.image_1, R.drawable.image_2,
   R.drawable.image_3 };
 int pos = 0;
 @SuppressWarnings("unused")
 private Animation slideLeftIn;
 private Animation slideLeftOut;
 private Animation slideRightIn;
 private Animation slideRightOut;
 RelativeLayout ll;
 ImageView image;
 ImageView profilePic;

 @Override
 public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
  gestureScanner = new GestureDetector(this);
  setContentView(R.layout.activity_main);
  ll = (RelativeLayout) findViewById(R.id.ll);
  tv = (TextView) findViewById(R.id.text);
  image = (ImageView) findViewById(R.id.imageView1);
  profilePic = (ImageView) findViewById(R.id.image);
  setText(pos);
  slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_in_left);
  slideLeftOut = AnimationUtils
    .loadAnimation(this, R.anim.slide_out_left);
  slideRightIn = AnimationUtils
    .loadAnimation(this, R.anim.slide_in_right);
  slideRightOut = AnimationUtils.loadAnimation(this,
    R.anim.slide_out_right);
 }

 @Override
 public boolean onTouchEvent(MotionEvent me) {
  return gestureScanner.onTouchEvent(me);
 }

 public boolean onDown(MotionEvent e) {
  return true;
 }

 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
   float velocityY) {
  try {
   if (e1.getX() > e2.getX()
     && Math.abs(e1.getX() - e2.getX()) > SWIPE_MIN_DISTANCE
     && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    Toast.makeText(this.getApplicationContext(), "Left",
      Toast.LENGTH_SHORT).show();
    // vf.showPrevious();
    ll.setAnimation(slideLeftIn);
    ll.setAnimation(slideLeftOut);

    pos++;
    if (pos == 0) {
     setText(pos);
    } else {

     setText(pos);
    }

   } else if (e1.getX() < e2.getX()
     && e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
     && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    Toast.makeText(this.getApplicationContext(), "Right",
      Toast.LENGTH_SHORT).show();
    // vf.showNext();
    pos--;
    ll.setAnimation(slideRightIn);
    ll.setAnimation(slideRightOut);
    if (pos == 0) {
     setText(pos);
    } else {

     setText(pos);
    }
   }
  } catch (Exception e) {
   // nothing
  }
  return true;

 }

 public void onLongPress(MotionEvent e) {
 }

 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
   float distanceY) {
  return true;
 }

 public void onShowPress(MotionEvent e) {
 }

 public boolean onSingleTapUp(MotionEvent e) {
  return true;
 }

 private void setText(int position) {
  tv.setText(name[position]);
  tv.setTextColor(color[position]);
  tv.setBackgroundColor(background[pos]);
  image.setBackgroundResource(d[pos]);
  profilePic.setBackgroundResource(d[pos]);
 }
}


Now , I added Anim folder under the res folder. This helps me in animating my view
from left to right and right to left.

1. res/anim/slide_in_left.xml:


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

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

    <translate
        android:duration="500"
        android:fromXDelta="-50%p"
        android:toXDelta="0" />

    <alpha

        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

</set>

2. res/anim/slide_in_right.xml:

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

    <translate

        android:duration="500"

        android:fromXDelta="50%p"

        android:toXDelta="0" />



    <alpha

        android:duration="500"

        android:fromAlpha="0.0"

        android:toAlpha="1.0" />



</set>

3. res/anim/slide_out_left.xml:
   
   <set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-50%p" />

    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />

  </set>

4.res/anim/slide_out_right.xml:

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

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-50%p" />

    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />

 </set>
            
      
Download the code: DynamicSwipeView





Cheers :)
Enjoy Coding.... :)

Sunday 7 April 2013

Facebook like slide-in and slide out navifation | Android Slide Navigation


Hello Friends,

Today , I am going to share you my code with the help of which you
can show facebook like slide navigation in your android.

If you are searching for facebook like slide in slide out navigation 
view, or trying to implement facebook like page navigation in your 
android application , then this tutorial definitely helps you. 

facebook slide
android navigation                                               







  











android slide navigartion
facebook



Download the complete source code here

Enjoy Coding..... :)
Cheers...


Sunday 31 March 2013

Roboelectric : AndroidManifest.xml not found or not a file

Hello Friends,

While Running my first android Test Project, I found                                                            
                                                                                                               
the following error:        
                                                                                                                            
java.lang.RuntimeException: java.lang.RuntimeException: D:\workspace\MyProjectTest\.\AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
at org.robolectric.RobolectricTestRunner.methodBlock(RobolectricTestRunner.java:95)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.RuntimeException: D:\workspace\MyProjectTest\.\AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
at org.robolectric.AndroidManifest.validate(AndroidManifest.java:85)
at org.robolectric.AndroidManifest.getResourcePath(AndroidManifest.java:232)
at org.robolectric.RobolectricContext.getSystemResourcePath(RobolectricContext.java:104)
at org.robolectric.RobolectricTestRunner.setupApplicationState(RobolectricTestRunner.java:181)
at org.robolectric.RobolectricTestRunner.internalBeforeTest(RobolectricTestRunner.java:134)
at org.robolectric.RobolectricTestRunner.methodBlock(RobolectricTestRunner.java:92)
... 15 more

After spending several hours I found the fixed. Actually I am doing a silly mistake during configuring
the test environment.Just forgot to add the project reference , due to this my test project could not
find the Androidmanifest.xml file.

Go to argument tab under junit test run configuration and select the second radio buttoni.e Other and browse and select you android project.

All done now run your project.

Enjoy coding... :)
Cheers :)




Friday 22 March 2013

Android Unit Testing With Robolectric | Android TDD | Android Unit Test Case

Hello Droid Guys,
           This is my first android Hello World test project using Roboelectric.
This tutoial covers  following testing topic.
                                                                                 

1. How to test text on a TextView using Roboelectric in Android.                          
2. How to test image on a ImageView using Roboelectric in Android
3. How to test New Activity call using Roboelectric in Android
4. Testing Button is visible or not in Android using Roboelectric
5. Test case for button click in android using Roboelectric
5. How to check intent using Roboelectric in Android
6. How to make API call using Roboelectric in Android
7. Calling HTTP request in Android Roboelectric test project

Before starting writing the above listed test case , If you are thinking about how to setup
your First android test project , then see the Robolectric Setup  tutorial .

First of all I am going to create an android Project "RoboElectric" .

Here is my Android Code:

1. MainActivity.java :
package com.example.roboelectric;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

 Button login;
 EditText name;
 EditText password;

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

  login = (Button) findViewById(R.id.login);
  name = (EditText) findViewById(R.id.name);
  password = (EditText) findViewById(R.id.password);

  login.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    Intent home = new Intent(MainActivity.this, Home.class);
    startActivity(home);
   }
  });

 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }

}
2. Home.java
package com.example.roboelectric;

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

public class Home extends Activity {

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

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_home, menu);
  return true;
 }

}
3. Second.java
package com.example.roboelectric;

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

public class Home extends Activity {

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

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.activity_home, menu);
  return true;
 }

}
4. AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.roboelectric"
    android:versioncode="1"
    android:versionname="1.0" >

  <uses-sdk
        android:minsdkversion="8"
        android:targetsdkversion="16" >

        <application
            android:allowbackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >

            <activity
                android:name="com.example.roboelectric.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                  <action android:name="android.intent.action.MAIN" >
                     <category android:name="android.intent.category.LAUNCHER" >
                     </category>
                   </action>
                </intent-filter>
            </activity>
            <activity
                android:name="com.example.roboelectric.Home"
                android:label="@string/title_activity_home" >
            </activity>
          <activity
                android:name="com.example.roboelectric.Second"
                android:label="@string/title_activity_second" >
            </activity>
        </application>
  </uses-sdk>
</manifest>

What Are the expected test case for above android project ?? 

 1. checking hello world text
 2. login button is visible or not
 3. test startActivity() starts a new activity or not on click of login button '
 Now, I am Going to write my test Project "RoboElectricTest"

1.MyActivityTest.java
import java.io.IOException;

import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.matchers.StartedMatcher;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import android.util.Log;
import android.view.View;
import android.widget.Button;

import com.example.roboelectric.Home;
import com.example.roboelectric.MainActivity;
import com.example.roboelectric.R;
import com.example.roboelectric.Second;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;

@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {

 private MainActivity activity;
 private Button login;
 
 @Before
 public void setUp() throws Exception {
   activity = new MainActivity();
   activity.onCreate(null);
   login = (Button) activity.findViewById(R.id.login);
 }
 
  // checking hello world text
 @Test 
 public void shouldHaveHappySmiles() throws Exception {
  String hello = new MainActivity().getResources().getString( R.string.hello_world);
  assertThat(hello, equalTo("Hello world!"));
 }   
 // Button visible 
 @Test 
 public void testButtonsVisible() { 
  assertThat(login.getVisibility(), equalTo(View.VISIBLE)); 
 } 
 
 // startnew activty 
 @Test 
 public void shouldStartNextActivityWhenButtonIsClicked() { 
  login.performClick();
  assertThat(activity, new StartedMatcher(Home.class));
  }
}


Hope this will helps you ,in writing UI test case for your android project using Roboelectric .

Enjoy Coding. Cheers...... :)

Tuesday 19 March 2013

Steps to configure RoboElectric with Eclipse | Roboelectric | Test Driven Development


Roboelectric Setup with eclipse: 
                      Hello Droid Guys, have you thinking of  Test Driven Development

in Android  using Roboelectric and Mockito??    
                                                                                                                                                                                                                   
Today , I am going explain some easy steps for configuring the test environment for your android project in eclipse. How to configure Robolectric test framework with eclipse.

Note: Please add android sdk in your system envoirnment variable path



Step 1: Create an Android Project:
    1. File-->New-->Project-->Android-->Android Project-->Next
    2. New Android Project Dialog will open Name Your porject as
        "RoboElectric"
    3. Package Name "com.example"
    4. Create an Activity Class "MainActivity"
    5.  Click Next and follow Instruction

Step 2: Adding a Source test directory in your android Project
    1. Right click on "RoboElectric" android project in project explorer and create a new
        Folder "test" and click Finish . See below snap for more help:


     


Step 3: Creating an Java test Project
    1. File-->New-->Java Project
    2. Name the Project as "RoboElectricTest" and click Next

             
             
    3. Expand the RoboElectricTest and Seclect "src"
    4. Click  Remove source folder 'src' from build path. See below snap for
         more help

     
 
     5. Click on  "Link additional source" and browse to "/Roboelectric/test" and then Click
         Finish. See below snap for help





            Step 4: Adding dependency on the Android Project
               1. Right Click on "RoboelectricTest" Project-->Build Path -->Select Project Tab
               2. Click Add-->select "Roboelectric" project Finish. See below snap:

         
     Step 5: Configuring the build path of "RoboElectricTest" Project:
        1.Go to project build path then select Library tab
        2. Click Add Library-->select Junit--> Next
             Note: Choose Junit 4 because RoboElectric is not Compatible with Junit3
       3. Click Finish.
       4. Click on "Add external Jar and Add roboelectric.jar. You can download it from
            here.
       5.  Click on "Add external Jar and navigate to your android sdk folder and select android.jar
       6.   Click on "Add external Jar and navigate to your android sdk folder and select map.jar

                  
             
             Step 6: Now the final steps: i.e Creating eclipse Junit run configuration
1                  1. Right Click on "RoboElectric" project go to "Run"-->"Run Configuration"
                    2. Double click on "Junit"  from left menu (Not to click "Android Junit Test")
                    3. Name as RoboElectricTestConfiguration
                    4. Select the "Run all tests in the selected project,package or source folder option
                    5. Click search button
                    6. Select "RoboElectrictest"
                    7. TestRunner: Junit4
                                         
                    Note: Choose Junit 4 because RoboElectric is not Compatible with Junit3
                    8. Select eclipse Junit launcher and click Ok

                                               
                    9. Click the argument Tab from the top
                  10 . Under "Working directory" select the other radio button

                                             
                  11. Click Worksapce, select "RoboElectric"(not the RoboelectricTest and the value inside
                         the "Other" edit box should look like '${workspace_loc:Roboelectric}')

                                      
                  12. Click Ok and close.


                The Roboelectric TDD environment is now configure. Now Android Unit Testing
                Envoirnment With Robolectric will be Done

                In my next blog I will share with you a sample code , which test our first android project
                Hello World , Using Roboelectric.


                Enjoy Coding :)  

                You May ALSO LIKE THIS:
                1. Android TextView testing
                2. Android Button click testing
                3. Android startActivity() or launch new activity test

Tuesday 12 March 2013

ScrollView in android | horizontal scroll view in android | scroll image horizonatlly and vertically both


Hello friends,

Using the following xml code you can scroll an image in both horizontally and vertically.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/white"
    android:orientation="vertical" >

       <ScrollView
         android:id="@+id/ScrollView01"
         android:layout_width="wrap_content"
         android:layout_height="320px"
         android:layout_below="@+id/buttonlayout"
         android:scrollbars="horizontal|vertical" >

        <HorizontalScrollView
            android:id="@+id/HorizontalScrollView01"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent" >

            <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/linearMain3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/imageDetail"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:adjustViewBounds="true"
                    android:scaleType="fitXY" />
            </LinearLayout>
        </HorizontalScrollView>
    </ScrollView>
</RelativeLayout>

Thursday 7 March 2013

Setting working Environment for Android


Hello My Droid Friends,

Set Working environment for Android
To work on android we need to setup working environment. Before setting up android environment we
need to fulfill some basics like
1. JDK must be installed (to install
http://www.oracle.com/technetwork/java/javase/downloads/index.html)
2. Eclipse for java must be installed (http://www.eclipse.org/downloads/)
We are expecting that eclipse is working fine.
1. Download Android SDK
It includes only the core Standard development Kit (SDK) Tools, which will help us in developing Android Applications.
Download Android SDK from http://developer.android.com/sdk/index.html
After downloading .zip or .tgz package (instead of the SDK installer), unpack it to a safe location on your machine.
We will be using it later on in coming steps.
2. Install Android development Tools (ADT)
In Eclipse From Help menu click on Install New Software option



Click on Add button and on Add Site window fill following url to download Android ADT, you can enter any name in Name field, and click on Ok button.




Eclipse will search for the available tools and show their list.


Select all tools and click on Next. It will start checking the things and will show list of tools which will be installed.



Click on Next button and after a license verification it will start downloading and may take some time depending upon the speed of Internet. After successfully installing it will ask to restart eclipse.
Restart it.

3. Adding SDK Location
From Window menu click on Preferences there would be Android option visible (which is also assurance that android ADT is installed :) ). Here we need to tell Eclipse where the Android SDK is located. So click on Android from list, and then browse it to the SDK unzipped directory and click on Ok.





4. Install SDK Latest Version
After that come up on Android SDK and AVD Manager from the Window menu. Select available packages and select the latest version of the SDK, in my case I will select followings, you can select based on your own choice and click on Install Selected to complete the installation, and restart eclipse after it.


During installation It would be looking like this.


5. Set Up Device
As we are almost done, last step is we need to set up device to work, real device can be attached, but we will be using simulator for the scope of our work. From eclipse interface click on this icon from top left side of IDE.
               
                                                                                                   
Select the option Virtual Devices and click on New.
On Android Virtual Device screen fill the followings and click on Create AVD.



It will show the device added in Android SDK and AVD manager screen


Now our setup is complete and we are ready to develop android applications.


Enjoy Coding :)
Cheers...... :)

You may also like this link:
1. Roboelectric test case Integration in Android

Wednesday 27 February 2013

Sunday 17 February 2013

Android Dropbox Integration

Hello Droid Guys,

Today, I am going to provide you a full tutorial of dropbox integration into your
android application with source code. Using this you can easily :
            1. upload your image in your dropbox.
            2. upload your text file and document  into your dropbox.
            3. upload your audio and video file into  your dropbox.

Also , List or fetch all your dropbox file, folder and images by your android application.

Step 1: Create an app and get the API KEY and SECRET KEY:
          a) Open this link https://www.dropbox.com/developers and logged in with your
              dropbox credential.

dropbox sync
                           



android dropbox sample


 b) After Logged in , the next page ask you for create an app

android dropbox sample

C) Insert the app name and description and provide the access as full dropbox by 
selecting the second option.
dropbox integration


d) Note your app key and secret key
dropbox integration

                                            
Step 2) Download the android  Sdk for dropbox form HERE

dropbox integration

Now all Done , import the project into your android eclipse and please remember to 
change secret key and App key with your own key.


Hope this will helps you.
Enjoy Coding :)


 

Copyright @ 2013 Android Developers Blog.