ListView ergebnisse wiederholen sich

Bobert

Bobert

Fortgeschrittenes Mitglied
15
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:
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;
    }
 
  • Danke
Reaktionen: Bobert
wow Danke! :thumbup:

Das war es, habe es übersehen.

Grüße Bobert
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.021
swa00
swa00
D
Antworten
9
Aufrufe
1.768
jogimuc
J
J
  • JoEntwickler
Antworten
0
Aufrufe
974
JoEntwickler
J
Zurück
Oben Unten