| |||||||
Das Thema "ListView: Fehler beim schnellen Scrollen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 18.11.2011
Beiträge: 13
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
| ich habe eine Activity programmiert, die ungefähr 20 Kategorien anzeigt, beim auswählen einer Kategorie wird diese geöffnet (in einer neuen Activity). Das funktioniert auch alles gut, auch wenn man lansam scrollt. Aber sobald man schnell scrollt (also mit dem finger drüberwischt und es dann noch weiterscrollt) geht das nicht mehr, denn es wird nicht die Kategorie angezeigt, die man ausgewählt hat, sondern eine andere! Wie kann das denn passieren? Die Activity ist wie folgt implementiert: Code: public class CategoryListActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fillList();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l,v,position, id);
final Intent intent = new Intent(this, ArticleListActivity.class);
intent.putExtra("category", (Category) v.getTag());
startActivity(intent);
}
private void fillList() {
Cursor categoriesCursor = db.getReadableDatabase().rawQuery(CategoryTable.SQL_SELECT_ALL, null);
startManagingCursor(categoriesCursor);
SimpleCursorAdapter categoriesAdapter = new SimpleCursorAdapter(this, R.layout.my_simple_list_item_1, categoriesCursor, new String[] {CategoryTable.NAME}, new int[] {android.R.id.text1}) {
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view = super.newView(context, cursor, parent);
view.setTag(new Category(cursor.getInt(0), cursor.getInt(1), cursor.getString(2)));
return view;
}
};
setListAdapter(categoriesAdapter);
} gruß Schmenti |
| | |
| | #2 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
Views werden zur Performanceverbesserung wiederverwendet. Sprich dass du nicht ständig neue Views erzeugen musst, wird eine View die bereits im Speicher ist und genau das selbe abbildet, wieder verwendet und die Daten darauf aktualisiert. Dein Vorgehen passt nicht zu diesem Konzept. Du solltest dir dazu mal Tutorials reinziehen ![]() Gruß MichaelS
__________________ http://android.fungamer.net/ |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 18.11.2011
Beiträge: 13
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
|
Macht es Sinn die Positionen in eine Hash-Map zu speichern? Ich habe es so implementiert, es funktioniert, aber ich würde gern wissen, ob es einen besseren Weg gibt.
|
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Lag beim scrollen | Unmatched | Samsung Galaxy S (I9000) Forum | 2 | 20.05.2011 16:40 |
| Wie verhindere ich ruckeln beim Scrollen einer ListView mit ImageView-Elementen? | ChemDroid | Android App Entwicklung | 6 | 09.05.2011 18:16 |
| ListView - Problem - Wo ist der Fehler? | badkeks | Android App Entwicklung | 2 | 29.03.2011 11:37 |
| Ruckeln beim Scrollen in Telefonbuch | LarsD | HTC Desire Forum | 5 | 01.06.2010 09:47 |
| Listview-Problem: Einträge erst nach Scrollen sichtbar | R3L | Android App Entwicklung | 5 | 28.01.2010 09:07 |