Ich habe 3 ListView in Fragment und jetzt muss ich das Objekt, das ich geklickt habe, um eine neue Seite zu öffnen und einige Elemente anzeigen.ein Element in einem ListView bekommen
Das Problem ist, dass in meiner Tabs die ListView mit einer Sqlite db gefüllt ist und wenn ich Element zur Liste hinzufügen beginnt jede Seite von 0, während in meiner DB jedes Element eine andere ID hat.
Wie kann ich das richtige Element bekommen?
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Integer pageToShow = getArguments().getInt(ARG_SECTION_NUMBER);
View rootView = inflater.inflate(R.layout.fragment_choose_character, container, false);
ListView listView = (ListView) rootView.findViewById(R.id.listViewPersonaggi);
personaggiDB = new DatabasePersonaggiHandler(getContext());
ArrayList<Personaggio> personaggi = personaggiDB.getAllPersonaggi(pageToShow);
// Adatto il personaggio alla grafica della lista
this.m_adapter = new PersonaggioAdapter(getContext(), R.layout.riga_personaggio, personaggi);
listView.setAdapter(this.m_adapter);
// Su ogni elemento della lista aggiungo il click
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent singoloPersonaggioIntent = new Intent(getContext(), SingoloPersonaggioActivity.class);
singoloPersonaggioIntent.putExtra("idPersonaggio", i);
startActivity(singoloPersonaggioIntent);
}
});
return rootView;
}
Wie man sehen kann ich diese Zeile verwenden:
ArrayList<Personaggio> personaggi = personaggiDB.getAllPersonaggi(pageToShow);
zu verstehen, welche Art von Zeichen aus meiner DB erhält so jede Seite verschiedene Charaktere hat.
Zum Beispiel in meiner zweiten Registerkarte pageToShow = 2
hat das erste Element die Position 0, aber in meiner DB hat es id = 12
und so weiter.
Irgendeine Idee?
Dies kann Ihnen helfen. https://stackoverflow.com/questions/3041218/assigning-id-to-a-row-in-an-android-listview – lib4