BaseAdapter -> klick auf einen Listeneintrag

  • 9 Antworten
  • Neuester Beitrag
Diskutiere BaseAdapter -> klick auf einen Listeneintrag im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

mr.freeze

Ambitioniertes Mitglied
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ß
 
M

mr.freeze

Ambitioniertes Mitglied
rowView.setOnClickListener(new OnClickListener() {

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

swordi

Lexikon
listview.setonitemclicklistener()

ist der gängige weg.
 
M

mr.freeze

Ambitioniertes Mitglied
Ich habe keine ListView, sondern eine zusammengebaute View.
ImageView + TextView


Gruß
 
S

swordi

Lexikon
du sagst du hast einen baseadapter - den wirst du ja an eine listview hängen oder?
 
M

mr.freeze

Ambitioniertes Mitglied
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ß
 
S

swordi

Lexikon
um eben eine auswahl auf eine reihe zu bekommen machst du

listview.setonitemclicklistener, wie vorher geschrieben.

nicht im adapter sondern in der activity.
 
M

mr.freeze

Ambitioniertes Mitglied
wie komme ich denn dann an den index der zeile ran?
 
S

swordi

Lexikon
ist ja ein parameter der onitemclick methode (position, oder arg2 )

=> doku
 
Fr4gg0r

Fr4gg0r

App-Anbieter (Werbung)
Und bezüglich Performance der ListView kannste dir mal List14.java anschauen..
 
Ähnliche Themen - BaseAdapter -> klick auf einen Listeneintrag Antworten Datum
1