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

BaseAdapter -> klick auf einen Listeneintrag

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von mr.freeze, 08.02.2011.

  1. mr.freeze, 08.02.2011 #1
    mr.freeze

    mr.freeze Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    1
    Registriert seit:
    02.09.2010
    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ß
     
  2. mr.freeze, 08.02.2011 #2
    mr.freeze

    mr.freeze Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    1
    Registriert seit:
    02.09.2010
    rowView.setOnClickListener(new OnClickListener() {

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

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    listview.setonitemclicklistener()

    ist der gängige weg.
     
  4. mr.freeze, 09.02.2011 #4
    mr.freeze

    mr.freeze Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    1
    Registriert seit:
    02.09.2010
    Ich habe keine ListView, sondern eine zusammengebaute View.
    ImageView + TextView


    Gruß
     
  5. swordi, 09.02.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    du sagst du hast einen baseadapter - den wirst du ja an eine listview hängen oder?
     
  6. mr.freeze, 09.02.2011 #6
    mr.freeze

    mr.freeze Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    1
    Registriert seit:
    02.09.2010
    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ß
     
  7. swordi, 09.02.2011 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    um eben eine auswahl auf eine reihe zu bekommen machst du

    listview.setonitemclicklistener, wie vorher geschrieben.

    nicht im adapter sondern in der activity.
     
  8. mr.freeze, 09.02.2011 #8
    mr.freeze

    mr.freeze Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    74
    Erhaltene Danke:
    1
    Registriert seit:
    02.09.2010
    wie komme ich denn dann an den index der zeile ran?
     
  9. swordi, 09.02.2011 #9
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ist ja ein parameter der onitemclick methode (position, oder arg2 )

    => doku
     
  10. Fr4gg0r, 09.02.2011 #10
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Und bezüglich Performance der ListView kannste dir mal List14.java anschauen..
     

Diese Seite empfehlen