Monday, 14 July 2014

Dynamically set screen orientation android

Set following code before setting activity layout as follow

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(r.layout.yourlayout);


Sunday, 13 July 2014

Remove / Disable activity header android

Just before setting contentview add the following line

requestWindowFeature(Window.FEATURE_NO_TITLE);


Thursday, 10 July 2014

Slide ViewPager on button click

You have changed ViewPager's page by sliding it. You can also change page by click on next and previous button.

  1. Add two button so called NEXT and PREV in xml.
  2. Instantiate these buttons in your activity. And create a global counter as follow

    int globalPosition = 0;

  3. Now set next click listener. as follow

    // checking if pager can scroll or not
    boolean can = mPager.canScrollHorizontally(1);
    
    if(can)
    {
     mPager.setCurrentItem(++globalPosition,true);
    }
    
    

  4. Set previous button click listener

    boolean can = mPager.canScrollHorizontally(-1);
    if(can)
    {
     mPager.setCurrentItem(--globalPosition,true);
    }
    

  5. Dont forget to update globalPosition on ViewPager page sliding.

    mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
     @Override
     public void onPageSelected(int position) {
      globalPosition = position;
     }
    });
    


Sunday, 6 July 2014

Android ViewPager

ViewPager is nothing but horizontal scroller for entire screens.

  1. Lets begin from xml. Add ViewPager in your xml file. You can copy following code.
    <android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/your_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
        
  2. Now move to java file(Activity) create instance for ViewPager added in xml. Make sure this Activity extending FragmentActivity not Activity
    mPager = (ViewPager) findViewById(R.id.your_pager);
  3. Now create adapter for pager, create pager instance
    ViewPager mPager;
    PagerAdapter mPagerAdapter;
    public static String [] pageItem = new String[]{"Page 1","Page 2","Page 3"};
     
  4. Initialize adapter object and set adapter to ViewPager.
    mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
    mPager.setAdapter(mPagerAdapter);
  5. Create slider class which should extend FragmentStatePagerAdapter or FragmentPagerAdapter.
    private class ScreenSlidePagerAdapter extends 
        FragmentStatePagerAdapter 
    {
    public ScreenSlidePagerAdapter(FragmentManager fm) {
     super(fm);
    }
    
    @Override
    public Fragment getItem(int position) {
            //
     return new MyFragment(position);
    }
    
    @Override
    public int getCount() {
     return pageItem.length;
    }
    }
  6. Create fragment which will display each screen. It will be slided horizontally.
    public class MyFragment extends Fragment {
     TextView textView;
     int position = 0;
     public MyFragment(int position)
     {
      this.position = position;
     }
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            ViewGroup rootView = (ViewGroup) inflater.inflate(
                    R.layout.my_screen_fragment, container, false);
            
            textView = (TextView)rootView.findViewById(R.id.my_page_tv);
            textView.setText(activityClassObject.pageItem[position]);
            return rootView;
        }
    }