Witam, przywróciłem sobie wiedzę z tematów czystego czytelnego kodu, no i wszystko fajnie ale nie wiem czy ja to dobrze stosuję, bo np. moja metoda onCreate() nie jest Single-Responsiblity i nie wiem jak to się tyczy do takich komunikacji między GUI a kodem. Mógłby ktoś kto się zna rzucić okiem? Pozdrawiam
public class AllBooksActivity extends AppCompatActivity {
private androidx.appcompat.widget.Toolbar tool_bar;
private ViewPager view_pager;
private TabLayout tab_layout;
private SectionsPagerAdapter sectionsPagerAdapter;
private BooksRecViewAdapter recViewAdapter;
private BooksTabFragment allBooksFragment, wantToReadBooksFragment,
currReadingBooksFragment, alreadyReadBooksFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_books);
initWidgets();
initTabFragments();
initVariables();
setUpViewPager(view_pager);
tab_layout.setupWithViewPager(view_pager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
recViewAdapter.getFilter().filter(s);
return false;
}
});
return true;
}
private void initWidgets() {
view_pager = (ViewPager) findViewById(R.id.view_pager);
tab_layout = (TabLayout) findViewById(R.id.tab_layout);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
tool_bar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(tool_bar);
}
}
private void initTabFragments() {
allBooksFragment = new BooksTabFragment(this, Status.NEUTRAL);
wantToReadBooksFragment = new BooksTabFragment(this, Status.WANT_TO_READ);
currReadingBooksFragment = new BooksTabFragment(this, Status.CURRENTLY_READING);
alreadyReadBooksFragment = new BooksTabFragment(this, Status.ALREADY_READ);
}
private void initVariables() {
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
recViewAdapter = allBooksFragment.getAdapter();
}
private void setUpViewPager(ViewPager viewPager) {
sectionsPagerAdapter.addFragment(allBooksFragment, "All books");
sectionsPagerAdapter.addFragment(wantToReadBooksFragment, "Want to read books");
sectionsPagerAdapter.addFragment(currReadingBooksFragment, "Currently reading books");
sectionsPagerAdapter.addFragment(alreadyReadBooksFragment, "Already read books");
viewPager.setAdapter(sectionsPagerAdapter);
view_pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (view_pager.getCurrentItem()) {
case 0: {
recViewAdapter = allBooksFragment.getAdapter();
break;
}
case 1: {
recViewAdapter = wantToReadBooksFragment.getAdapter();
break;
}
case 2: {
recViewAdapter = currReadingBooksFragment.getAdapter();
break;
}
case 3: {
recViewAdapter = alreadyReadBooksFragment.getAdapter();
break;
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}