M
Manuel1805
Ambitioniertes Mitglied
- 2
Hallo zusammen,
ich stehe mal wieder vor einem kleinen Problem. Vielleicht hat ja der Ein oder Andere eine gute Idee. In meiner (Tutorial-)App verwende ich einen Navigationsdrawer zum Auswählen einzelner Kapitel. Die Inhalte der einzelnen Kapitel stelle ich mit einem ViewPager dar. Da die Anzahl der vorhandenen Seiten im Viewpager eine so große Dimension eingenommen hat, möchte ich eine Unterkapitelauswahl einbauen. Ich dachte an die Actionbar, o.ä. Kann mir jemand sagen, wie ich diese entsprechend meiner Auswahl im Navigationsdrawer befülle. Oder eine andere Idee liefern.
Mein Navigationsdrawer schaut wie folgt aus:
Der Code meines ViewPagers schaut wie folgt aus:
Den ViewPager befülle ich wie folgt:
ich stehe mal wieder vor einem kleinen Problem. Vielleicht hat ja der Ein oder Andere eine gute Idee. In meiner (Tutorial-)App verwende ich einen Navigationsdrawer zum Auswählen einzelner Kapitel. Die Inhalte der einzelnen Kapitel stelle ich mit einem ViewPager dar. Da die Anzahl der vorhandenen Seiten im Viewpager eine so große Dimension eingenommen hat, möchte ich eine Unterkapitelauswahl einbauen. Ich dachte an die Actionbar, o.ä. Kann mir jemand sagen, wie ich diese entsprechend meiner Auswahl im Navigationsdrawer befülle. Oder eine andere Idee liefern.
Mein Navigationsdrawer schaut wie folgt aus:
Code:
public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mDrawerTitle;
private CharSequence mTitle;
CustomDrawerAdapter adapter;
List<DrawerItem> dataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initializing
dataList = new ArrayList<DrawerItem>();
mTitle = mDrawerTitle = getTitle();
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
GravityCompat.START);
// Add Drawer Item to dataList
dataList.add(new DrawerItem("Startseite", R.drawable.ic_start)); //1
//dataList.add(new DrawerItem("zuletzt besuchte Seite",
// R.drawable.ic_action_good));
dataList.add(new DrawerItem("Grundlagen", //2
R.drawable.ic_sinn_und_zweck));
... etc...
adapter = new CustomDrawerAdapter(this, R.layout.custom_drawer_item,
dataList);
mDrawerList.setAdapter(adapter);
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open,
R.string.drawer_close) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to
// onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to
// onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
/*
if (savedInstanceState == null) { SelectItem(0); }
*/
if (savedInstanceState != null) {
return;
} else {
SelectItem(0);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void SelectItem(int possition) {
Fragment fragment = null;
switch (possition) {
case 0:
fragment = new FragmentStartSeite();
break;
case 1:
fragment = new Sinn();
break;
case 2:
fragment = new Einstieg();
break;
... etc ...
}
// fragment.setArguments(args);
FragmentManager frgManager = getFragmentManager();
frgManager.beginTransaction().replace(R.id.content_frame, fragment)
.commit();
mDrawerList.setItemChecked(possition, true);
setTitle(dataList.get(possition).getItemName()); //Kapitel als Titel anzeigen
mDrawerLayout.closeDrawer(mDrawerList);
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
}
Der Code meines ViewPagers schaut wie folgt aus:
Code:
public class Sinn extends Fragment {
public Sinn() {
}
ViewPager viewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.start_kapitel, container, false);
// ViewPager initialisieren
SinnPageAdapter adapter = new SinnPageAdapter(this.getActivity());
viewPager = (ViewPager) view.findViewById(R.id.viewPager);
viewPager.setAdapter(adapter);
// starte mit erstem Layout
viewPager.setCurrentItem(0);
return view;
}
Den ViewPager befülle ich wie folgt:
Code:
public class SinnPageAdapter extends PagerAdapter {
Context context;
public SinnPageAdapter(Context context) {
this.context = context;
}
// Punkte für Fragen 1 -6
public int punkte[] = new int[7];
public void punkteVergeben(int Aufgabe, int Punkt) {
this.punkte[Aufgabe] = Punkt;
}
TextView titel;
TextView titelInhalt;
TextView inhalt;
TextView seite_von_bis;
ImageView bild;
ImageView imagePfeilrechts;
CharSequence titelInhalttext; // für XML Titel_Inhalt
CharSequence inhaltText; // für XML Inhalt
public int seite;
int maxSeitenzahl = 30;
TextView frage;
// ---Die Anzahl aller Seiten zurückgeben---
// 11 Seiten + 4 Übungen
public int getCount() {
return 40;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.a_titel_inhalt;
seite = 1;
break;
case 1:
resId = R.layout.a_titel_inhalt;
seite = 2;
break;
...etc...
}
View view = inflater.inflate(resId, null);
if (seite == 1) {
titel = (TextView) view.findViewById(R.id.a_ti_titel);
titel.setText("Grundlagen");
titelInhalt = (TextView) view.findViewById(R.id.a_ti_inhalt);
titelInhalttext = Html
.fromHtml("In dieser Lektion lernst Du"
+ " die ersten Grundbegriffe und Aufgaben der Buchführung kennen. "
+ "Die folgenden Themen schauen wir uns nun an."
+ "<br/>" + "<br/>1. Überblick" + "<br/>2. Bilanz"
+ "<br/>3. Inventur / Inventar" + "<br/>4. GoB"
+ "<br/>5. Bewertungsgrundsätze"
+ "<br/>6. Buchführungspflicht");
titelInhalt.setText(titelInhalttext);
}