1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Bobert, 21.07.2011 #1
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Hallo,

    ich habe einen ListView, an den ich eine AdapterKlasse, die von BaseAdapter abgeleitet ist, anbinde.

    Nun sind im ListView anstatt 1,2,3,4...... z.B.(100) immer 1,2,3,4,1,2,3,4,1,2,3,4, d.h. die Ergebnisse wiederholen sich andauernd. Kennt jemand das Problem? Aus der Datenbank kommen die Ergebnisse richtig. Erst nach listViewMW.setAdapter(mwSearchAdapter); läuft es verkehrt.

    Kann wer was dazu sagen! Danke!

    Grüße Bobert


    Code:
      DataBaseAdapter db = new DataBaseAdapter(this);      
      allObj = db.getMWObj(search);
                
      listViewMW = (ListView)findViewById(R.id.lv_Produkts);
      mwSearchAdapter = new MWAdapter(this,
    getLayoutInflater(), getResources(), allObj); 
      listViewMW.setAdapter(mwSearchAdapter);
      listViewMW.setOnItemClickListener(this);
    
    Code:
    public class MWAdapter extends BaseAdapter  {
    
        private LayoutInflater mLayoutInflater;
        private ArrayList<MWObj> allMWObj;
        private Resources mResources;
        
        public MWAdapter(Context context, LayoutInflater li, Resources res, ArrayList<MaterialWorldObj> allObj) {
            mLayoutInflater = li;
            mResources = res;
            
            allMWObj = allObj; 
        }
        
        @Override
        public int getCount() {
            return allMWObj.size();
        }
    
        @Override
        public Object getItem(int position) {
            return allMWObj.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            return allMWObj.size();;
        }
            
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            int resID;
                    
            View mView = convertView;
            
            if ( convertView == null ) {
                mView = mLayoutInflater.inflate(R.layout.pitems, null);            
                
                // Add Title Text
                TextView tvTitel = (TextView)mView.findViewById(R.id.list_titel);
                tvTitel.setText(allMWObj.get(position).getName() );
               
                // Add Title Text
                TextView tvText = (TextView)mView.findViewById(R.id.list_text);
                tvText.setText(allMWObj.get(position).getText());
                            
                // Add Image!           
                ImageView iv = (ImageView)mView.findViewById(R.id.list_item_image);
                resID = mResources.getIdentifier(allMWObj.get(position).getImageName(), "drawable", "com.xyz.capa");
                iv.setImageResource(resID);
            }
            
            return mView;
        }
    }
    
     
    Zuletzt bearbeitet: 01.10.2011
  2. ts-apps, 21.07.2011 #2
    ts-apps

    ts-apps Erfahrener Benutzer

    Schau dir am besten nochmal die Doku zu der getView Methode an.

    Sollt aber mit folgendem Code funktionieren:
    Code:
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            int resID;
                    
            View mView = convertView;
            
            if ( convertView == null ) {
                mView = mLayoutInflater.inflate(R.layout.pitems, null);            
            }
            // Add Title Text
            TextView tvTitel = (TextView)mView.findViewById(R.id.list_titel);
            tvTitel.setText(allMWObj.get(position).getName() );
               
            // Add Title Text
            TextView tvText = (TextView)mView.findViewById(R.id.list_text);
            tvText.setText(allMWObj.get(position).getText());
                            
            // Add Image!           
            ImageView iv = (ImageView)mView.findViewById(R.id.list_item_image);
            resID = mResources.getIdentifier(allMWObj.get(position).getImageName(), "drawable", "com.plebsapps.p4.caparol");
            iv.setImageResource(resID);
            
            
            return mView;
        }
    
     
    Bobert gefällt das.
  3. Bobert, 22.07.2011 #3
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    wow Danke! :thumbup:

    Das war es, habe es übersehen.

    Grüße Bobert
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.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
ListView fix am unteren Bildschirmrand ausgeben Android App Entwicklung 01.03.2017
ProgressBar in ListView Android App Entwicklung 03.01.2017
ListView Element an eine Datenbank senden Android App Entwicklung 04.12.2016
ListView Items verknüpfen Android App Entwicklung 06.10.2016
AlertDialog Listview mit ContextMenu Android App Entwicklung 01.10.2016
Du betrachtest das Thema "ListView ergebnisse wiederholen sich" im Forum "Android App Entwicklung",