17 August 2014

Make a Drop -down list in Android

In this tutorial we will learn to make a spinner list .

What are we going to do ?
-> We will make a drop down menu with two options Male and Female to select your gender .Then we will display the same in a TextView .

What we need ?
  • A layout (activity_main.xml) 
  • A java class (MainActivity.java)
  • A Spinner
  • A TextView
Step 1 : Design the layout (activity_main.xml) found in res-> layout with a Spinner and an empty TextView.

The code for activity_main.xml is given below :

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/genderspinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp" />

    <TextView
        android:id="@+id/showgender"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/genderspinner"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="20dp" />

</RelativeLayout>

Step 2 : Then we program the logic for our class MainActivity.java found in src folder . The code for MainActivity.java is given below .
MainActivity.java
package com.mia.spinnerdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity implements OnItemSelectedListener {
 Spinner genderspinner;
 TextView showgender;
 private String[] state = { "Male", "Female"};

  @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  System.out.println(state.length);
  showgender = (TextView) findViewById(R.id.showgender);
  genderspinner = (Spinner) findViewById(R.id.genderspinner);
  ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, state);
  adapter_state
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  genderspinner.setAdapter(adapter_state);
  genderspinner.setOnItemSelectedListener(this);

  }

  public void onItemSelected(AdapterView<?> parent, View view, int position,
   long id) {
      genderspinner.setSelection(position);
  String selState = (String) genderspinner.getSelectedItem();
  showgender.setText("Your Gender:" + selState);
 }

  @Override
 public void onNothingSelected(AdapterView<?> arg0) {
  // TODO Auto-generated method stub

  }

}
Step 3 : Run the Project .

Explanation of the code :
  • In the layout xml (activity_main.xml) we define the Spinner with id genderspinner and a TextView with id showgender .
  • The item selected in Spinner is shown in the TextView(showgender) dynamically .
  • In the class file MainActivity.java we declare two variables for Spinner and TextView as genderspinner and showgender respectively . (These declarations are different from the one in the layout. I have used the same name to reduce the complexity of the code) .
Spinner genderspinner;
 TextView showgender;
  • Then we define a String Array named state which has the elements we are going to use in our drop-down list .
private String[] state = { "Male", "Female"}; 
  • We connect the layout(activity_main.xml) to our class using the setContentView method .
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  • Then we assigning the Spinner and TextView in the layouts with the declarations in our class by referring to their unique ids from the layout(activity_main.xml) .
showgender = (TextView) findViewById(R.id.showgender);
  genderspinner = (Spinner) findViewById(R.id.genderspinner);
  • We define an ArrayAdapter which adapts the array we defined previously (state) to the Spinner
ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, state);
  adapter_state
  • Then we display the text related to the drop down item selected by using method onItemSelected() method and setText() method . 
public void onItemSelected(AdapterView<?> parent, View view, int position,
   long id) {
      genderspinner.setSelection(position);
  String selState = (String) genderspinner.getSelectedItem();
  showgender.setText("Your Gender:" + selState);
 }
  
Stay Tuned with Made In Android 

Published By:
Yatin Kode
on 17.8.14

2 August 2014

Making a TAB LAYOUT in Android (Part - 2)

Continued from the previous post

We continue from the previous post . We had previously made the layouts and the Activity for the contents we will display in the Tabs one by one . Now we will merge these Activities in the Tabs .

Step 10 : We write the code shown below in the class MainActivity.java found in the src directory of your project .

MainActivity.java
package com.mia.tablayout;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TabHost tabHost=getTabHost();
        //First Tab
        TabSpec firstspec=tabHost.newTabSpec("Tab1");
        firstspec.setIndicator("Tab1");
        Intent human=new Intent(this,Tab1.class);
        firstspec.setContent(human);
        
        TabSpec secondspec=tabHost.newTabSpec("Tab2");
        secondspec.setIndicator("Tab2");
        Intent animal=new Intent(this,Tab2.class);
        secondspec.setContent(animal);
      
        // Adding all TabSpec to TabHost
        tabHost.addTab(firstspec); // Adding first tab
        tabHost.addTab(secondspec); // Adding second tab     
    }
   }

Step 11 : Run the project .
Click on the TAB1 to get first page .
Click on TAB2 to get second page .

Explanation of the code :
  • First we made two xml files (bg_tab and bg_tabwidget) under drawable folder which defined the looks or styles of the tab and the frame in which the pages are displayed respectively .
  • We defined activity_main.xml where we used TabHost as our parent element which actually gives the look of the Tab format to our project . 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" - See more at: http://madeinandroid.blogspot.in/2014/07/making-tab-layout-in-android-part-1.html#sthash.TqlXsZtJ.dpuf
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  • We also used a TabWidget which displays the tabs in an ordered manner .
<TabWidget android:id="@android:id/tabs"
  • Then we used FrameLayout which reserves space for the pages to be displayed when we run the project .
<FrameLayout android:id="@android:id/tabcontent"
  • Then we made the layout of our pages to be displayed after we click the respective Tabs
  • We also defined the Activity class of these above two layouts .
  • At last we defined the content of MainActivity class which extends TabActivity class so that we can use the predefined methods from the class TabActivity .
public class MainActivity extends TabActivity 
  • We decide the layout for MainActivity, the activity_main by passing it to setContentView method 
setContentView(R.layout.activity_main);
  • We make object of TabHost which we made in activity_main.xml and we use it further .
TabHost tabHost=getTabHost();
  • We use unique TabSpec objects for different tabs which contains indicator which is unique identifier for different tabs .
TabSpec firstspec=tabHost.newTabSpec("Tab1");
        firstspec.setIndicator("Tab1");
        Intent human=new Intent(this,Tab1.class);
        firstspec.setContent(human);
and also the Intents for linking them to the respective classes  .
  • We then just add the objects of tabSpec to TabHost by using addTab() method .
tabHost.addTab(firstspec); // Adding first tab
        tabHost.addTab(secondspec); // Adding second tab  

Stay Tuned with Made In Android 

Published By:
Yatin Kode
on 2.8.14

29 July 2014

Making a TAB LAYOUT in Android (Part - 1)

I'll teach you guys to form a Tab layout in just 2 sessions . Just carry on with me .

What we need ?
  • An xml layout (activity_main.xml)
  • A class file for the above layout (MainActivity.java)
  • A drawable file for styling the Tab_layout (bg_tabwidget.xml)
  • A drawable for styling the skin of a single tab (bg_tab.xml)
  • Two xml layout for pages displayed after tabs are clicked . (tab1.xml,tab2.xml) and their respective class files (Tab1.java,Tab2.java)
  • Some changes in the Manifest file .
What are we going to do ?
-> We will make a page with two tabs and open pages one by one as we click the tabs one by one .

Step 1 : First we design the styles for the tab we are going to use . We make a folder drawable in the res directory in your project  . Right-click on the res folder in the Package Explorer and select New-> Folder .

Step 2 : Give a name to the new folder as drawable and click Finish .


Step 3 : Make a new xml file in the drawable folder and name it as bg_tab.xml  . The code for bg_tab.xml is given below .

bg_tab.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
<solid  android:color="#FFFFFF"/>
 <!-- color of the border --><stroke android:width="2dip" android:color="#453"/> <corners android:radius="20dp" /> <padding android:left="5dip" android:right="5dip" android:bottom="5dip"/></shape>

Step 4 : Make another file in the same drawable folder named as bg_tabwidget.xml . The code for bg_tabwidget.xml is given below .

bg_tabwidget.xml .
<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle >
        <solid  android:color="#C8C8C8"/>
        <!-- color of the border -->
        <stroke android:width="2dip"
                android:color="#453"/>
        <corners android:radius="20dp" />
        <padding android:left="5dip"
            android:top="5dip"
            android:right="5dip"
            android:bottom="5dip"/>
    </shape>


Step 5 : Make changes in the activity_main.xml file found in res-> layout folder .
The code for activity_main.xml is given below .

activity_main.xml
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
       android:id="@android:id/tabhost"
       android:layout_width="fill_parent"\
       android:layout_height="fill_parent"
       android:padding="10dp"
       android:background="#FFFFF0">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TabWidget android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_tabwidget" />"
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/bg_tab" />
        </LinearLayout>
    </TabHost>


Step 6 : We make the page we will display when we click the first tab (TAB1) .Make a new xml file in the res-> layout folder in your project and name it tab1.xml .I'll display a simple message in it  .
The code for tab1.xml is given below .

tab1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Content in tab1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

Step 7 : We make the java class for the layout tab1.xml . make a new Class in src folder and name it as Tab1.java
Right click on src folder in your project and select New -> Class .
Give name to the class as Tab1 and click Finish .
Add the code shown below to Tab1.java 

Tab1.java
package com.mia.tablayout;

import android.app.Activity;
import android.os.Bundle;
     
public class Tab1 extends Activity{
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.tab1);
    }
    }


Step 8 : Make another layout and name it as tab2.xml which will be displayed as we click on TAB2 .
The code for tab2.xml is given below .

tab2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Content in tab 2"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>


Step 9 : Then the class file for for tab2.xml. name it as Tab2.java . The code for Tab2.java is given below .

Tab2.java
package com.mia.tablayout;

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

public class Tab2 extends Activity{
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab2);

}
}

The other steps will be shown in the next post .

Stay Tuned with Made In Android

Published By:
Yatin Kode
on 29.7.14

21 July 2014

Make a Gallery of images using ImageSwitcher

We are going to make an interesting GUI component in Android . You people have become bored of ImageView and ImageButtons, their boring looks and all .Lets try a new concept to display images .
What do we need ?
  • XML layout (activity_main.xml)
  • Gallery
  • ImageSwitcher
  • A java Class (MainActivity.java)
  • Attributes file (attrs.xml) 
  • Any number of images of your choice (I choose 3)
What are we going to do ?
-> We will make a gallery of Images which will display each and every images you have included one by one .     in animated format .

Step 1 : Make a layout with a Gallery and ImageSwitcher and (TextView - optional).(activity_main.xml) .
See to it that the id's of Gallery and ImageSwitcher are to be remembered .

main
The code for activity_main.xml is given below .

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

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Image switches one by one"/>
         
        <Gallery
            android:id="@+id/galleryimg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/> 

       
        <ImageSwitcher
            android:id="@+id/switcherimg"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            />
            
    </LinearLayout>

Step 2 : We make an attribute file in res -> values folder . Right Click on values under res folder and Select New -> Android XML File from your Packege Explorer .
new xml

Step 3 : Give name as attrs.xml to the file and Click Finish .
attrs

Step 4 : Copy the code below in attrs.xml .

attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="Gallery1">
        <attr name="android:galleryItemBackground" />
    </declare-styleable>    
</resources>

Step 5 : Include three images in res ->. drawable_hdpi folder .Include images as shown below .
drag image

Select Copy files and press OK . Also drag other two images the same way . Name all the three images as pic1 , pic2 and pic3 .
copy files

Step 6 : Make a class in src folder or use existing (MainActivity.java) . The code for the class is given below .

MainActivity.java
package com.mia.imagegallery;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;

@SuppressWarnings("deprecation")
public class MainActivity extends Activity implements ViewFactory {

    Integer[] imageIDs = {
            R.drawable.pic1,
            R.drawable.pic2,
            R.drawable.pic3
            };
    
    private ImageSwitcher imageSwitcher2;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        imageSwitcher2 = (ImageSwitcher) findViewById(R.id.switcherimg);
        imageSwitcher2.setFactory(this);
        imageSwitcher2.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
        imageSwitcher2.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
        Gallery gallery = (Gallery) findViewById(R.id.galleryimg);
        gallery.setAdapter(new ImageAdapter(this));
        gallery.setOnItemClickListener(new OnItemClickListener()
        {
            public void onItemClick(AdapterView<?> parent,View v, int position,long id)
            {
                imageSwitcher2.setImageResource(imageIDs[position]);
            }
        });
        
    }

    @Override
    public View makeView() {
        // TODO Auto-generated method stub
        ImageView imageView = new ImageView(this);
        imageView.setBackgroundColor(0xFF000000);
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        imageView.setLayoutParams(new 
                ImageSwitcher.LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.FILL_PARENT
                    ));
        return imageView;
    }

   public class ImageAdapter extends BaseAdapter
   {
       private Context context;
       private int itemBackground;
       
       public ImageAdapter(Context c)
       {
          context = c;
           TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);
           itemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);
           a.recycle();
       }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return imageIDs.length;
    }
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(imageIDs[position]);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));
        imageView.setBackgroundResource(itemBackground);
        return imageView;
    }
       
   }
        
}

Step 7 :Run the Project.

Explanation of the code :
  • We define the layout in activity_main.xml which contains Gallery and ImageSwitcher .The Gallery and ImageSwitcher contains the GUI for switching images one by one by default .
  • We change the default ids for Gallery and ImageSwitcher so that we can use them in our class .
<Gallery
       android:id="@+id/galleryimg"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/> \      
         <ImageSwitcher
                android:id="@+id/switcherimg"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_alignParentLeft="true"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                />
  • We define the style of our gallery using styleable attribute in file attrs.xml as a resource .
<declare-styleable name="Gallery1">
        <attr name="android:galleryItemBackground" />
    </declare-styleable>  
  • Our class MainActivity extends Activity and implements interface ViewFactory . ViewFactory creates dynamic view of the gallery .
public class MainActivity extends Activity implements ViewFactory
  • Then we make Integer array of the id of images from R.java .
Integer[] imageIDs = {
            R.drawable.pic1,
            R.drawable.pic2,
            R.drawable.pic3
            };
  • We make an instance of ImageSwitcher which we connect it to ImageSwitcher in activity_main.xml with is as switcherimg .
imageSwitcher2 = (ImageSwitcher) findViewById(R.id.switcherimg);
imageSwitcher2.setFactory(this);
  • setOutAnimation and setInAnimation will change the views with animation aspects .
imageSwitcher2.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
        imageSwitcher2.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
  • All other methods are self explanatory .

Stay tuned with Made In Android

Published By:
Yatin Kode
on 21.7.14

18 July 2014

Giving a link of a website in your Application

Here we will learn how to visit a website from your android application .

What do you need ?
  • A Layout
  • A TextView
  • A java file
  • Name of the website you desire to link to
What are we going to do ?
-> We will make a TextView with the name of the website which will be linked to the website through the browser .

Step 1 : Add a TextView (or two) with the name of your Website Or a catchy link tag. (activity_main.xml)
in res->layout folder .
textview
 Code for activity_main.xml is given below :
activity_main.xml

<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"
    tools:context=".MainActivity" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Click the link to visit my website"
        android:textAppearance="?android:attr/textAppearanceLarge" />    
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Link to Made In Android"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

Step 2 : Now we will make the logic to make the TextView as a link .Go to MainActivity,java in src folder of your project .
MainActivity.java
package com.mia.websitelink;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.view.View;
import android.widget.TextView;

@SuppressLint("NewApi")
public class MainActivity extends Activity {

      public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
              
             setContentView(R.layout.activity_main);
             TextView webs =(TextView)findViewById(R.id.textView2);
             webs.setTextColor(Color.BLUE);
            
             SpannableString content = new SpannableString("Link to Made In Android");
             content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
            
                webs.setText(content);
                           
                webs.setOnClickListener(new View.OnClickListener() {                    
                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://madeinandroid.blogspot.in/"));
                        startActivity(i);            
                    }
                });
      }
}
You can change the address(shown as green colored in the code to address you wish to visit)

Step 3 : Run the project .

Explanation of the above code :
  • We usually write our code we want to run presently in the app in onCreate() method . Then we pass the id of the layout in setContentView() method .
public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
              
             setContentView(R.layout.activity_main);
  • We make a variable webs of type TextView which we relate it to the TextView we want our link to be (textView2)
TextView webs =(TextView)findViewById(R.id.textView2);
  • We set the color of the text to BLUE in the line of code given below .
webs.setTextColor(Color.BLUE);
SpannableString content = new SpannableString("Link to Made In Android");

content.setSpan(new UnderlineSpan(), 0, content.length(), 0);

webs.setText(content);
  • We then define the onClickListener() method which performs the actions when we click the text .
webs.setOnClickListener(new View.OnClickListener() {                    
                    @Override
                    public void onClick(View arg0) {
  • Then we define the ACTION_VIEW parameter of Intent class to display the browser as we click the link .Then we use Uri.parse which takes input as the link of our website and also validates it . Then we finally start our Activity using startActivity() method .
Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://madeinandroid.blogspot.in/"));
                        startActivity(i);            
                    }
                });
Stay Tuned with Made In Android

Published By:
Yatin Kode
on 18.7.14

Previous Page Next Page Home
Top