Ich versuche, ein Tablayout mit 3 Tabs einzurichten, jeder Tab enthält eine Recycleransicht. Ich habe diese Frage gefunden: How to implement RecyclerView with CardView rows in a Fragment with TabLayout Was ist ähnlich zu dem, was ich will, ich versuche, dies einzurichten, dann werde ich meinen Datenabruf einrichten, nachdem ich das funktioniert.Android Recycler Anzeigen im Registerkartenlayout
Das Problem, das ich jetzt bekomme es den PagerAdapter einrichten. Hier ist mein Code:
public class WorkoutDaysActivity extends BaseActivity{
ListView mListView = new ListView(this);
ArrayList<CustomObject> w29w1m;
CustomListViewAdapter mCustomListViewAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.workout_days);
mToolBar = activateToolbar();
setUpNavigationDrawer();
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
PagerAdapter pagerAdapter =
new PagerAdapter(getSupportFragmentManager(), WorkoutDaysActivity.this)
viewPager.setAdapter(pagerAdapter);
// Give the TabLayout the ViewPager
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
// Iterate over all tabs and set the custom view
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
tab.setCustomView(pagerAdapter.getTabView(i));
}
}
@Override
public void onResume() {
super.onResume();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
class PagerAdapter extends FragmentPagerAdapter {
String tabTitles[] = new String[] { "Tab One", "Tab Two", "Tab Three" };
Context context;
public PagerAdapter(FragmentPagerAdapter fm, Context context) {
super(fm);
this.context = context;
}
@Override
public int getCount() {
return tabTitles.length;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new WorkoutDetailFragment();
case 1:
return new WorkoutDetailFragment();
case 2:
return new WorkoutDetailFragment();
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
public View getTabView(int position) {
View tab = LayoutInflater.from(WorkoutDaysActivity.this).inflate(R.layout.custom_tab, null);
TextView tv = (TextView) tab.findViewById(R.id.custom_text);
tv.setText(tabTitles[position]);
return tab;
}
}}
Die erste Stelle, wo ich erhalte eine Fehlermeldung ist
PagerAdapter pagerAdapter =
new PagerAdapter(getSupportFragmentManager(), WorkoutDaysActivity.this)
viewPager.setAdapter(pagerAdapter);
Der Fehler ist:
PagerAdapter (android.support.v4.app.FragmentPagerAdapter, Context) in PagerAdapter cannot be applied to: (android.support.v4.app.FragmentManager, WorkoutDaysActivity.this)
Die android.support.v4.app. FragmentManager ist der rot unterstrichene Teil. Der zweite Fehler ist in diesem Teil:
class PagerAdapter extends FragmentPagerAdapter {
String tabTitles[] = new String[] { "Tab One", "Tab Two", "Tab Three" };
Context context;
public PagerAdapter(FragmentPagerAdapter fm, Context context) {
super(fm);
this.context = context;
}
Der Fehler ist in der Super (fm); Teil, und es heißt:
FragmentPagerAdapter (android.support.v4.app.FragmentManager) in FragmentPagerAdapter cannot be applied to: android.support.v4.app.FragmentPagerAdapter
Ich fühle mich wie dies ein einfacher Fehler sein würde, mit der falschen Sache zu importieren, aber meine Versuche zu beheben es gescheitert. Jede Hilfe sehr dankbar, danke!
Das hat funktioniert! Vielen Dank – LBJ33