1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. Schmenti, 18.11.2011 #1
    Schmenti

    Schmenti Threadstarter Neuer Benutzer

    Hallo,

    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);
        }
    
    Jemand eine Idee?

    gruß Schmenti
     
  2. MichaelS, 18.11.2011 #2
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    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
     
  3. Schmenti, 21.11.2011 #3
    Schmenti

    Schmenti Threadstarter Neuer Benutzer

    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.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[NON-DEV] ADB -Nach Tutorial zur Speichererweiterung - Installation von Apps schlägt fehl Android App Entwicklung Samstag um 17:23 Uhr
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[GESCHLOSSEN] APK Zigalign Fehler Playstore Android App Entwicklung 13.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
[ERLEDIGT] Drawer mit scrollbarem Listview Android App Entwicklung 27.03.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
[ERLEDIGT] App stürzt neuerdings beim anzeigen des eigenen Standorts ab Android App Entwicklung 19.03.2017
ListView fix am unteren Bildschirmrand ausgeben Android App Entwicklung 01.03.2017
Verständnisprobleme beim Layout Android App Entwicklung 21.02.2017
Du betrachtest das Thema "ListView: Fehler beim schnellen Scrollen" im Forum "Android App Entwicklung",