BaseAdapter -> klick auf einen Listeneintrag

M

mr.freeze

Ambitioniertes Mitglied
1
Hallo,

ich habe einen BaseAdapter, der in einer Liste (Image + Titel)
zahlreiche Zeilen mit Image und Titel anzeigt.

Wie fange ich denn den Klick auf eine Reihe ab?

Gruß
 
rowView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(context, "Sie haben bild " + position + " ausgewählt!", Toast.LENGTH_LONG).show();
}
});
 
listview.setonitemclicklistener()

ist der gängige weg.
 
Ich habe keine ListView, sondern eine zusammengebaute View.
ImageView + TextView


Gruß
 
du sagst du hast einen baseadapter - den wirst du ja an eine listview hängen oder?
 
ja der hängt an einer listView.

habe folgenden code:

Code:
public final Activity context;
    Image[] images = null;
    
    public MyListAdapter(Activity context, List<Image> images) {
        super();
        this.context = context;
        this.images = new Image[images.size()];
        
        for(int x = 0; x < images.size(); x++){
            this.images[x] = images.get(x);
        }
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        
        final LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.listwithimage, null, true);
        
        TextView label = (TextView) rowView.findViewById(R.id.label);
        label.setText(images[position].getTitle());
        
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
            
//        imageView.setImageBitmap(images[position].getPhoto());
        imageView.setImageDrawable(images[position].getDrawable());
    
        rowView.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "Sie haben bild " + position + " ausgewählt!", Toast.LENGTH_SHORT).show();
                System.out.println("Position: " + position);
                
                final Intent intent = new Intent(MyListAdapter.this.context, ShowSinglePhoto.class);
                intent.putExtra("LinkToPhoto", images[position].getLinkToImage());
                MyListAdapter.this.context.startActivity(intent);

                
                
//                LayoutInflater inflatore = context.getLayoutInflater();
//                View singlePhoto = inflatore.inflate(R.layout.singlephoto, null);
//                ImageView singlePhotoView = (ImageView) singlePhoto.findViewById(R.id.singleImageView);
//                singlePhotoView.setImageBitmap(images[position].getPhoto());
//                TextView textView = (TextView) singlePhoto.findViewById(R.id.TextView01);
//                textView.setText("hallo Welt");
//                singlePhotoView.bringToFront();
            }
        });
        
        
        
        return rowView;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return images.length;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return images[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }    
}

Gruß
 
um eben eine auswahl auf eine reihe zu bekommen machst du

listview.setonitemclicklistener, wie vorher geschrieben.

nicht im adapter sondern in der activity.
 
wie komme ich denn dann an den index der zeile ran?
 
ist ja ein parameter der onitemclick methode (position, oder arg2 )

=> doku
 
Und bezüglich Performance der ListView kannste dir mal List14.java anschauen..
 

Ähnliche Themen

C
Antworten
8
Aufrufe
1.124
swa00
swa00
M
  • MikelKatzengreis
Antworten
5
Aufrufe
126
swa00
swa00
Zurück
Oben Unten