Thursday, 20 December 2012

Handler in Android


This Handler will hide the textview in a few seconds later.

public Handler ()

Since : API level 1

Default constructor associates this handler with the queue for the current thread. If there isn't one, this handler won't be able to receive messages.
    Define a runnable variable with your code.
      Runnable hide = new Runnable() {
 
        @Override   public void run() {
         // TODO Auto-generated method stub
        textview.setVisibility(View.INVISIBLE);
        }
     };

public final boolean postDelayed (Runnable r, long delayMillis)

Since: API Level 1

Parameters

r                     The Runnable that will be executed.
delayMillis     The delay (in milliseconds) until the Runnable will be executed.

Returns

            Returns true if the Runnable was successfully placed in to the message queue. Returns false on failure, usually because the looper processing the message queue is exiting. Note that a result of true does not mean the Runnable will be processed -- if the looper is quit before the delivery time of the message occurs then the message will be dropped.

           Causes the Runnable r to be added to the message queue, to be run after the specified amount of time elapses. The runnable will be run on the thread to which this handler is attached.

Define a Handler variable
          Handler handler = new Handler();

          textview.setVisibility(View.VISIBLE);

          handler.postDelayed(hide, 4000);


After 4 seconds the textview will be INVISIBLE.


Thank you



Tuesday, 11 December 2012

Shared Preferences

    The SharedPreferences class provides a general framework that allows you to save and retrieve persistent key-value pairs of primitive data types. You can use SharedPreferences to save any primitive data: booleans, floats, ints, longs, and strings. This data will persist across user sessions (even if your application is killed).

    To get a SharedPreferences object for your application, use one of two methods:
getSharedPreferences() - Use this if you need multiple preferences files identified by name, which you specify with the first parameter.

getPreferences() - Use this if you need only one preferences file for your Activity. Because this will be the only preferences file for your Activity, you don't supply a name.

To write values:
Call edit() to get a SharedPreferences.Editor.
Add values with methods such as putBoolean() andputString().
Commit the new values with commit()
To read values, use SharedPreferences methods such as getBoolean() and getString().


To put values in Shared Preferences

SharedPreferences values =  
PreferenceManager.getDefaultSharedPreferences
(MainActivity.this);
SharedPreferences.Editor editor = values.edit();
String name = editText1.getText().toString();
    
editor.putString("Name", name);
editor.putInt("Int", 1);
editor.putBoolean("boolean", true);
editor.putFloat("float", 1.1f);
editor.putLong("long", 1L);
editor.commit();


To get values from Shared Preferences
SharedPreferences values = PreferenceManager.getDefaultSharedPreferences(this);
     String Name = values.getString("Name", "null");
     int i = values.getInt("int", 10);
     boolean b = values.getBoolean("boolean", false);
     float f= values.getFloat("float", 0.0f);
     long l = values.getLong("long", 0);

    
Here is an example:

main.xml











MainActivity.java


package com.android.sharedPreferences;

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

public class ExActivity extends Activity {

 EditText editText1;
 Button submit;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  editText1 = (EditText) findViewById(R.id.editText1);
  submit = (Button) findViewById(R.id.submit);  
  
  //Intent
  submit.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    
    // shared preference
    SharedPreferences values = PreferenceManager
      .getDefaultSharedPreferences(MainActivity.this);
    SharedPreferences.Editor editor = values.edit();
    String name = editText1.getText().toString();
    
    editor.putString("Name", name);
    editor.putInt("Int", 1);
    editor.putBoolean("boolean", true);
    editor.putFloat("float", 1.1f);
    editor.putLong("long", 1L);
    editor.commit();
    //
    
    Intent i = new Intent(MainActivity.this,Second.class);
    startActivity(i);
    
   }
  });
 }
}
second.xml




    

    


Second.java


package com.android.sharedPreferences;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;

public class Second extends Activity {
 TextView name;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.second);

  name = (TextView) findViewById(R.id.textview2);

  // shared preference
  SharedPreferences values = PreferenceManager
    .getDefaultSharedPreferences(this);
  String Name = values.getString("Name", "null");
  int i = values.getInt("int", 10);
  boolean b = values.getBoolean("boolean", false);
  float f = values.getFloat("float", 0.0f);
  long l = values.getLong("long", 0);
  name.setText(Name+" \n\n"+"int is \n\n"+i+"\n\n"+"boolean is \n\n"+b+"\n\n"+"float is \n\n"+f+"\n\n"+"long is \n\n"+l);

 }
}
Sample Manifest




    

    
        
            
                

                
            
        
                    
        
    



Run the program and feel the output friends.

Thank You



Monday, 3 December 2012

Translate Animation


     Translate Animation is used to move one object from one position to another position.

Signature is

public TranslateAnimation (float fromXDelta, float toXDelta, float fromYDelta,
float toYDelta)
      

The coding for set animation for particular object is including 4 steps.

  1. Have to configure our object. If it is imageview means
         
ImageView img = (ImageView) findViewById(R.id.image);

  2. Create animation.


TranslateAnimation moveLefttoRight = new TranslateAnimation(-1000, 0, 0, 0);
  3. Then most important we should set time delay for that animation. Otherwise we cant get animation feel.
moveLefttoRight.setDuration(2000);
  4. Set this animation to our object
img.startAnimation(moveLefttoRight);
  Full coding for set animation for a object is
ImageView img = (ImageView) findViewById(R.id.player1image);

TranslateAnimation moveLefttoRight = new TranslateAnimation(-1000, 0, 0, 0);  
moveLefttoRight.setDuration(2000);
moveLefttoRight.setFillAfter(true);
         
img.startAnimation(moveLefttoRight);
main.xml


    

    
AnimActivity.java
package com.android.anim;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class ExActivity extends Activity {
 /** Called when the activity is first created. */
 int count = 0;
 String str1;
 ImageView img;

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

  Button b1 = (Button) findViewById(R.id.button1);
  final TextView tv1 = (TextView) findViewById(R.id.textview1);
  img = (ImageView) findViewById(R.id.player1image);

  final TranslateAnimation moveLefttoRight = new TranslateAnimation(
    -1000, 0, 0, 0);
  // moveLefttoRight.setInterpolator(new AccelerateInterpolator());
  moveLefttoRight.setDuration(2000);
  moveLefttoRight.setFillAfter(true);

  final TranslateAnimation moveLefttoRight1 = new TranslateAnimation(0,
    1000, 0, 0);
  // moveLefttoRight.setInterpolator(new AccelerateInterpolator());
  moveLefttoRight1.setDuration(2000);
  moveLefttoRight1.setFillAfter(true);

  img.startAnimation(moveLefttoRight);

  b1.setOnClickListener(new OnClickListener() {

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

    count++;
    Toast.makeText(getApplicationContext(), "Welcome",
      Toast.LENGTH_SHORT).show();
    str1 = "Button Pressed : " + count + " times.";
    tv1.setText(str1);    
    Log.i("count/2 is ", ""+count/2);
    if (count % 2 == 0)
     img.startAnimation(moveLefttoRight1);
    else
     img.startAnimation(moveLefttoRight);
   }
  });
 }
}


Run Project and feel the output.



Thank You