We provide complete mobile and web apps development solutions

Showing posts with label TabActivity. Show all posts
Showing posts with label TabActivity. Show all posts

Sunday, February 3, 2013

Tabs like with ActionBar


 TabActivity is depreciated  in Api 13. Tabs are presented in latest versions with ActionBar.
ActionBar.newTab().

So, prefer to not to use depreciated classes and methods. So use latest classes and methods.

Here is the simple example of creating Tab like activity using fragments.



 MobEngineersActivity.java

package com.srinivas.mobengineers;

import android.app.ActionBar;
import android.app.Activity;
import android.app.ActionBar.Tab;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Context;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.os.Bundle;
import android.widget.Toast;


public class MobEngineersActivity extends Activity {
    public static Context appContext;
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        appContext = getApplicationContext();

 
        ActionBar actionbar = getActionBar();       // initilize actionBar
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);     // set navigation mode
       
        ActionBar.Tab Category1Tab = actionbar.newTab().setText("FOOD");
        ActionBar.Tab Category2Tab = actionbar.newTab().setText("BEVERAGES");
       
        Fragment FoodFragment = new FoodFragment();
        Fragment BeveragesFragment = new BeveragesFragment();
       CategoryTab.setTabListener(new MyTabsListener(FoodFragment));
      BeveragesTab.setTabListener(new MyTabsListener(BeveragesFragment));

        actionbar.addTab(FoodTab);
        actionbar.addTab(BeveragesTab);
    }
Food.java

public class FoodFragment extends Fragment {
   
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.afragment, container, false);
    }
  }

Beverages.java
public class FoodFragment extends Fragment {
   
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.afragment, container, false);
    }
  }

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/ll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center">
    <LinearLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

 </LinearLayout>
</LinearLayout>



Tuesday, January 22, 2013

Fragments- ActionBar android

public class StartActivity extends Activity {
    public static Context appContext;
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        appContext = getApplicationContext();

          ActionBar actionbar = getActionBar();
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
       
        ActionBar.Tab PlayerTab = actionbar.newTab().setText("SONGS");
        ActionBar.Tab StationsTab = actionbar.newTab().setText("VIDEOS");


       ActionBar.Tab PhotosTab = actionbar.newTab().setText("PHOTOS");       
        Fragment sFragment = new SongsFragment();
        Fragment vFragment = new VideosFragment();

        sTab.setTabListener(new MyTabsListener(sFragment));
        vTab.setTabListener(new MyTabsListener(vFragment));

        actionbar.addTab(sTab);
        actionbar.addTab(vTab);

}



 

SongsFragment.java

public class SongsFragment extends Fragment {
   
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.songsfragment, container, false);
    }
   
}







public class VideosFragment extends Fragment {
   
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.videosfragment, container, false);
    }





PhotosFragment.java



 
public class PhotosFragment extends Fragment {
   
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.photosfragment, container, false);
    }
   
}



xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
   android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_gravity="center">
    <LinearLayout
        android:id="@+id/fragment_tab"
        android:layout_gravity="bottom"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

 </LinearLayout>
</LinearLayout>
 





TabHost- Tabs Android

 TabActivity:


In android, Using tabs, we can open multiple activities within single screen.
Three ways to create Tabs.

1. extends class from TabActivity or ActivityGroup

2. extending Activity and  use LocalActivityManager

3. using fragments ( Api 11 required).

Here is the sample working code for Tabs



package com.srinivas.tabs;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.app.Activity;
import android.app.LocalActivityManager;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.widget.TabHost;

public class MainActivity extends Activity {
    private static TabHost tabHost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabs);
        tabHost = (TabHost) findViewById(R.id.tabhost);
        LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false);
        mLocalActivityManager.dispatchCreate(savedInstanceState);
        tabHost.setup(mLocalActivityManager);
        Resources res = getResources();
       
        TabHost.TabSpec spec;

        Intent songintent = new Intent().setClass(this, SongsActivity.class);

        spec = tabHost.newTabSpec("songs")
                .setIndicator("Songs", res.getDrawable(R.drawable.ic_launcher))
                .setContent(logintent);
        tabHost.addTab(spec);

        Intent videointent = new Intent().setClass(this, VideosActivity.class);
        spec = tabHost
                .newTabSpec("video")
                .setIndicator("Videos", res.getDrawable(R.drawable.ic_launcher))
                .setContent(viodeintent);
        tabHost.addTab(spec);

        Intent booksintent = new Intent().setClass(this, BooksActivity.class);
        spec = tabHost.newTabSpec("books")
                .setIndicator("Books", res.getDrawable(R.drawable.ic_launcher))
                .setContent(booksintent);
        tabHost.addTab(spec);

       tabHost.setCurrentTab(0);
}
}


tabs.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@+id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp"
        />
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:layout_alignParentBottom="true"
        />
    </RelativeLayout>
</TabHost>


if you want to place Tabs at top , remove    android:layout_alignParentBottom="true"

https://picasaweb.google.com/115546358500228747299/Jun27201203?authkey=Gv1sRgCLmos6S5s_iaTA&feat=directlink#5836330903891211490

Online Training

Your Name :
Your Email: (required)
Your Message: (required)

Powered by Blogger.

Recent Posts

Find Us On Facebook

Popular Posts