Hello Guys.Today we discuss Simple Clickable Android tabs with ListViews example. Suitable for beginners. If you would do with more explanations then what about our video here :
SECTION 1 : Our MainActivity
package com.tutorials.tabswithlistview;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//GET AND SETUP ACTIONBAR
final ActionBar ab=getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//ADD THE TABS
ab.addTab(ab.newTab().setText("Man Utd").setTabListener(this));
ab.addTab(ab.newTab().setText("Chelsea").setTabListener(this));
ab.addTab(ab.newTab().setText("Arsenal").setTabListener(this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
//FIRST TAB SHOW MAN UTD
if(tab.getPosition()==0)
{
ManUtdFragment mu=new ManUtdFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.container, mu).commit();
}else if(tab.getPosition()==1)
{
ChelseaFragment c=new ChelseaFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.container, c).commit();
}else if(tab.getPosition()==1)
{
ArsenalFragment a=new ArsenalFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.container, a).commit();
}
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
SECTION 2 : Our Fragments
Man Utd Fragment
To display man utd players.
package com.tutorials.tabswithlistview;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ManUtdFragment extends ListFragment{
String[] players={"Ander Herera","Wayne Rooney","David DeGea","Robin Van Persie",
"Juan Mata","Michael Carrick","Chris Smalling","Phil Jones"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView=inflater.inflate(R.layout.manu, container,false);
//CREATE ADAPTER AND SET IT TO LV
ListAdapter adapter=new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,players);
setListAdapter(adapter);
return rootView;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), getListView().getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
}
}
Chelsea Fragment
Will display Chelsea Players in a ListFragment.
We have a string array which will populate our ListView which will define in thechelsea.xml
layout.
package com.tutorials.tabswithlistview;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ChelseaFragment extends ListFragment {
String[] players={"Thibout Courtouis","John Terry","Oscar","Eden Hazard","Diego Costa","Petr Cech",
"Didier Drogba","Branislav Ivanovic"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView=inflater.inflate(R.layout.chelsea, container,false);
//CREATE ADAPTER AND SET IT TO LV
ListAdapter adapter=new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,players);
setListAdapter(adapter);
return rootView;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), getListView().getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
}
}
Arsenal Fragment
This class will be deriving from ListFragment:
That ListFragment will render our Arsenal Players in a ListView. It will inflate the associated arsenal layout.
package com.tutorials.tabswithlistview;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ArsenalFragment extends ListFragment {
String[] players={"Aaron Ramsey","Jack Wilshere","Mesut Ozil","Alexis Sanchez",
"Per Metesacker","Keiron Gibbs","Laurent Koscielny","Olivier Giroud"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView=inflater.inflate(R.layout.arsenal, container,false);
//CREATE ADAPTER AND SET IT TO LV
ListAdapter adapter=new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,players);
setListAdapter(adapter);
return rootView;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), getListView().getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
}
}
SECTION 3 : Our Layouts
MainActivity Layout Our main activity layout.
Basically empty.
<RelativeLayout
android_id="@+id/container"
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" >
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android_layout_width="match_parent"
android_layout_height="match_parent"
android_orientation="vertical" >
<ListView
android_id="@id/android:list"
android_layout_width="match_parent"
android_layout_height="wrap_content" >
</ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android_layout_width="match_parent"
android_layout_height="match_parent"
android_orientation="vertical" >
<ListView
android_id="@id/android:list"
android_layout_width="match_parent"
android_layout_height="wrap_content" >
</ListView>
</LinearLayout>
Man Utd Fragment Layout Will display Man Utd data in a ListView.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android_layout_width="match_parent"
android_layout_height="match_parent"
android_orientation="vertical" >
<ListView
android_id="@id/android:list"
android_layout_width="match_parent"
android_layout_height="wrap_content" >
</ListView>
</LinearLayout>
Our Manifest We specify our minimum sdk version.
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="com.tutorials.tabswithlistview"
android_versionCode="1"
android_versionName="1.0" >
<uses-sdk
android_minSdkVersion="19"
android_targetSdkVersion="19" />
<application
android_allowBackup="true"
android_icon="@drawable/ic_launcher"
android_label="@string/app_name"
android_theme="@style/AppTheme" >
<activity
android_name="com.tutorials.tabswithlistview.MainActivity"
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>
Resource | Link |
---|---|
Video Tutorial | Youtube Tutorial |
Best Regards.