1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

ListView ergebnisse wiederholen sich

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Bobert, 21.07.2011.

  1. Bobert, 21.07.2011 #1
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    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

    Beiträge:
    194
    Erhaltene Danke:
    39
    Registriert seit:
    27.03.2010
    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 bedankt sich.
  3. Bobert, 22.07.2011 #3
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    wow Danke! :thumbup:

    Das war es, habe es übersehen.

    Grüße Bobert
     

Diese Seite empfehlen