Hallo zusammen,
ich muss vorweg sagen, dass ich Anfaenger bin und in Australien, was bedeutet auf meiner Tastatur gibt es keine Umlaute
Ich bin zur Zeit an einem Projekt, das ich in der Uni in Deutschland abgeben muss und komm nicht weiter.
Ich habe mir einen ViewPager gebastelt, der mir 3 Fragmente als Tabs anzeigt. Die ersten beiden Fragmente zeigen nur einen Button und das dritte zeigt eine Liste mit hardgecodeten Werten eines Arrays. Soweit so gut...
Ich wuerde nun allerdings gerne im dritten Fragment Werte einer SQLite Tabelle (employees) anzeigen lassen und bin mir total unsicher wie ich das machen kann. Ich habe im Internet zwar immer wieder Tutorials etc. gefunden einen CursorAdapter zu bauen, weiss aber nicht wie ich das auf die Fragmente anwenden soll.
Meine Denkweise waere im Fragement and der Stelle an der ich das Array erzeuge eine Funktion aufzurufen, die mir mit Hilfe des DataBaseHelpers einen Cursor zurueckgibt. Diese Werte wuerde ich dann in ein Array schreiben und ich haette die gleiche Struktur wie vorher. wuerde das funktionieren?
Die andere Frage die sich mir aber dann stellt ist wenn ich mehrere Spalten der Tabelle in der ListView anzeigen moechte, was muss ich dann machen?
Hat eventuell jemand n Beispielcode von so einem Fragement? bzw. gibt es ein Tutorial im Internet zu sowas?
Waere super nett, wenn Ihr mir helfen wuerdet, ich verzweifle ein wenig, weil ich nichts gescheites gefunden hab.
Unten ist noch mein bisheriger Code.
Vielen Dank!
1. Der ViewPagerAdapter
public class ViewPagerAdapter1 extends FragmentPagerAdapter {
String[] tabtitlearray = {"One","Two","List"};
public ViewPagerAdapter1 (FragmentManager manager){
super(manager);
}
@Override
public Fragment getItem(int position) {
switch(position) {
case 0: return new Fragment1();
case 1: return new Fragment2();
case 2: return new Fragment3();
}
return null;
}
@Override
public int getCount() {
return 3;
}
public CharSequence getPageTitle(int position){
return tabtitlearray[position];
}
}
Alles anzeigen
2. Das Fragment, das die Liste zeigt, hier wueder ich ansetzen wie oben beschrieben
public class Fragment3 extends android.support.v4.app.ListFragment implements AdapterView.OnItemClickListener {
ListView LView;
View v;
String[] values = {"test","test2","test3"};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragement3_layout, null);
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListAdapter adapter =new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,values);
setListAdapter(adapter);
getListView().setOnItemClickListener(this);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getActivity(), "Item: " + position, Toast.LENGTH_SHORT)
.show();
}
}
Alles anzeigen
Als letztes die Activity
public class Welcome extends AppCompatActivity {
Toolbar toolbar;
ViewPager viewpager;
TabLayout tabLayout;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewpager = (ViewPager) findViewById(R.id.viewpager);
ViewPagerAdapter1 viewPagerAdapter1 = new ViewPagerAdapter1(getSupportFragmentManager());
viewpager.setAdapter(viewPagerAdapter1);
tabLayout = (TabLayout) findViewById(R.id.tablelayout);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); //Fuer das drehen damit TabLayout richtig ausgefuellt ist
tabLayout.setupWithViewPager(viewpager);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewpager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
Alles anzeigen
Wie gesagt, seid gnaedig ich bin ein Anfaenger was Java und Android angeht moechte es aber gerne lernen.
Bin ich hiermit auf dem richtigen Weg? Vielen Dank!
Gruss, K.