.
106-Android Studio 1.5 Tabbed Activity Template
| 
Continue from Tutorial 105 | 
1) Create New Project
1.1) Configure New Project
Application Name: MyTab1
Company Domain: notarazi.com
Package Name: com.notarazi.mytab1 (auto-generated)
Project Location: C:\Project1\MyTab1\ (auto-generated)
1.2) Select Target Device
1.3) Add Activity
Select Tabbed Activity.
1.4) Customize The Activity
Select Navigation Style as “Action Bar Tabs (with ViewPager)
2) Observe the project codes
2.1) MainActivity.java
| 
package com.notarazi.mytab1; 
import android.support.design.widget.TabLayout; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
public class MainActivity extends AppCompatActivity { 
   /** 
    * The {@link android.support.v4.view.PagerAdapter} that will provide 
    * fragments for each of the sections. We use a 
    * {@link FragmentPagerAdapter} derivative, which will keep every 
    * loaded fragment in memory. If this becomes too memory intensive, it 
    * may be best to switch to a 
    * {@link android.support.v4.app.FragmentStatePagerAdapter}. 
    */ 
   private SectionsPagerAdapter mSectionsPagerAdapter; 
   /** 
    * The {@link ViewPager} that will host the section contents. 
    */ 
   private ViewPager mViewPager; 
   @Override 
   protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 
       Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
       setSupportActionBar(toolbar); 
       // Create the adapter that will return a fragment for each of the three 
       // primary sections of the activity. 
       mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
       // Set up the ViewPager with the sections adapter. 
       mViewPager = (ViewPager) findViewById(R.id.container); 
       mViewPager.setAdapter(mSectionsPagerAdapter); 
       TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
       tabLayout.setupWithViewPager(mViewPager); 
       FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
       fab.setOnClickListener(new View.OnClickListener() { 
           @Override 
           public void onClick(View view) { 
               Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
                       .setAction("Action", null).show(); 
           } 
       }); 
   } 
   @Override 
   public boolean onCreateOptionsMenu(Menu menu) { 
       // Inflate the menu; this adds items to the action bar if it is present. 
       getMenuInflater().inflate(R.menu.menu_main, menu); 
       return true; 
   } 
   @Override 
   public boolean onOptionsItemSelected(MenuItem item) { 
       // Handle action bar item clicks here. The action bar will 
       // automatically handle clicks on the Home/Up button, so long 
       // as you specify a parent activity in AndroidManifest.xml. 
       int id = item.getItemId(); 
       //noinspection SimplifiableIfStatement 
       if (id == R.id.action_settings) { 
           return true; 
       } 
       return super.onOptionsItemSelected(item); 
   } 
   /** 
    * A placeholder fragment containing a simple view. 
    */ 
   public static class PlaceholderFragment extends Fragment { 
       /** 
        * The fragment argument representing the section number for this 
        * fragment. 
        */ 
       private static final String ARG_SECTION_NUMBER = "section_number"; 
       public PlaceholderFragment() { 
       } 
       /** 
        * Returns a new instance of this fragment for the given section 
        * number. 
        */ 
       public static PlaceholderFragment newInstance(int sectionNumber) { 
           PlaceholderFragment fragment = new PlaceholderFragment(); 
           Bundle args = new Bundle(); 
           args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
           fragment.setArguments(args); 
           return fragment; 
       } 
       @Override 
       public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                                Bundle savedInstanceState) { 
           View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
           TextView textView = (TextView) rootView.findViewById(R.id.section_label); 
           textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); 
           return rootView; 
       } 
   } 
   /** 
    * A {@link FragmentPagerAdapter} that returns a fragment corresponding to 
    * one of the sections/tabs/pages. 
    */ 
   public class SectionsPagerAdapter extends FragmentPagerAdapter { 
       public SectionsPagerAdapter(FragmentManager fm) { 
           super(fm); 
       } 
       @Override 
       public Fragment getItem(int position) { 
           // getItem is called to instantiate the fragment for the given page. 
           // Return a PlaceholderFragment (defined as a static inner class below). 
           return PlaceholderFragment.newInstance(position + 1); 
       } 
       @Override 
       public int getCount() { 
           // Show 3 total pages. 
           return 3; 
       } 
       @Override 
       public CharSequence getPageTitle(int position) { 
           switch (position) { 
               case 0: 
                   return "SECTION 1"; 
               case 1: 
                   return "SECTION 2"; 
               case 2: 
                   return "SECTION 3"; 
           } 
           return null; 
       } 
   } 
} | 
2.2) Layouts
2.2.1) res/layout/activity_main.xml
| 
<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android" 
   xmlns:app="http://schemas.android.com/apk/res-auto" 
   xmlns:tools="http://schemas.android.com/tools" 
   android:id="@+id/main_content" 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" 
   android:fitsSystemWindows="true" 
   tools:context="com.notarazi.mytab1.MainActivity"> 
   <android.support.design.widget.AppBarLayout 
       android:id="@+id/appbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="@dimen/appbar_padding_top" 
       android:theme="@style/AppTheme.AppBarOverlay"> 
       <android.support.v7.widget.Toolbar 
           android:id="@+id/toolbar" 
           android:layout_width="match_parent" 
           android:layout_height="?attr/actionBarSize" 
           android:background="?attr/colorPrimary" 
           app:layout_scrollFlags="scroll|enterAlways" 
           app:popupTheme="@style/AppTheme.PopupOverlay"> 
       </android.support.v7.widget.Toolbar> 
       <android.support.design.widget.TabLayout 
           android:id="@+id/tabs" 
           android:layout_width="match_parent" 
           android:layout_height="wrap_content" /> 
   </android.support.design.widget.AppBarLayout> 
   <android.support.v4.view.ViewPager 
       android:id="@+id/container" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
   <android.support.design.widget.FloatingActionButton 
       android:id="@+id/fab" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="end|bottom" 
       android:layout_margin="@dimen/fab_margin" 
       android:src="@android:drawable/ic_dialog_email" /> 
</android.support.design.widget.CoordinatorLayout> | 
2.2.2) res/layout/fragment_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" 
   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="com.notarazi.mytab1.MainActivity$PlaceholderFragment"> 
   <TextView 
       android:id="@+id/section_label" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 
</RelativeLayout> | 
DOWNLOAD
.
 
How do you add a fragment to each tab?
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteHi Unkown, refer the following link for fragment example, http://android-steps.blogspot.my/2015/11/record-review-follow-apps-1.html
ReplyDelete