package com.vgrec.espressoexamples.activities; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; 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.support.v7.app.ActionBarActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import com.astuetz.PagerSlidingTabStrip; import com.vgrec.espressoexamples.Database; import com.vgrec.espressoexamples.R; import com.vgrec.espressoexamples.adapter.BooksAdapter; import com.vgrec.espressoexamples.models.Book; import java.util.ArrayList; public class ViewPagerActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_pager); ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager())); PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); tabs.setViewPager(pager); } private class ViewPagerAdapter extends FragmentPagerAdapter { private String[] tabs = {"New", "All"}; public ViewPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { return newBooksFragment(position); } @Override public int getCount() { return tabs.length; } @Override public CharSequence getPageTitle(int position) { return tabs[position]; } private Fragment newBooksFragment(int position) { Bundle args = new Bundle(); args.putInt("tab_index", position); BooksFragment fragment = new BooksFragment(); fragment.setArguments(args); return fragment; } } public static class BooksFragment extends Fragment { private static final int TAB_NEW = 0; private static final int TAB_ALL = 1; private ArrayList<Book> books = new ArrayList<>(); private String headerText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int currentTab = getArguments().getInt("tab_index"); if (currentTab == TAB_NEW) { books.addAll(Database.NEW_BOOKS); headerText = "NEW BOOKS"; } else if (currentTab == TAB_ALL) { books.addAll(Database.ALL_BOOKS); headerText = "ALL BOOKS"; } } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_books, container, false); ListView listView = (ListView) view.findViewById(R.id.list); listView.setAdapter(new BooksAdapter(getActivity(), books)); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Book book = (Book) parent.getItemAtPosition(position); Intent intent = new Intent(getActivity(), BookDetailsActivity.class); intent.putExtra(BookDetailsActivity.TITLE, book.getTitle()); intent.putExtra(BookDetailsActivity.AUTHOR, book.getAuthor()); startActivity(intent); } }); TextView headerTextView = (TextView) view.findViewById(R.id.header_text); headerTextView.setText(headerText); return view; } } }