/*
* Copyright (C) 2014 Ribot Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package uk.co.ribot.easyadapterdemo;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
/**
* Please go to {@link ListViewFragment} to see an example of using EasyAdapter with a ListView
* or {@link RecyclerViewFragment} for an example with a RecyclerView.
*
* This class only has boilerplate code to set up the the tabs and the ViewPager.
*/
public class MainActivity extends AppCompatActivity {
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(new MyPageAdapter(getSupportFragmentManager()));
mViewPager.setOnPageChangeListener(mPageChangeListener);
final ActionBar actionBar = getSupportActionBar();
if (actionBar!= null) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar
.newTab()
.setText(getString(R.string.tab_1_name))
.setTabListener(mTabListener));
actionBar.addTab(actionBar
.newTab()
.setText(getString(R.string.tab_2_name))
.setTabListener(mTabListener));
}
}
// Create a tab listener that is called when the user changes tabs.
private ActionBar.TabListener mTabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
mViewPager.setCurrentItem(tab.getPosition());
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
};
private ViewPager.OnPageChangeListener mPageChangeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setSelectedNavigationItem(position);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
};
private class MyPageAdapter extends FragmentPagerAdapter {
private MyPageAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
if (position == 1) {
return new RecyclerViewFragment();
}
return new ListViewFragment();
}
@Override
public int getCount() {
return 2;
}
}
}