1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  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 bedankt sich.
  3. Bobert, 22.07.2011 #3
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    wow Danke! :thumbup:

    Das war es, habe es übersehen.

    Grüße Bobert
     

Diese Seite empfehlen