ClickHandler bei ListView

  • Hallo zusammen,


    ich habe eine Activity, welche mit einer ListView arbeitet, aber nicht von ListActivity abgeleitet ist, da die Ansicht aus mehreren Komponenten besteht.
    Wie kann ich in diesem Fall Klicks auf ein Item weiterverarbeiten?


    Die Methode von ListActivity

    Code
    protected void onListItemClick(ListView l, View v, int position, long id)


    kann ich ja nicht verwenden, da ich nicht von ListActivity abgeleitet habe. Oder?


    Vielen Dank für Eure Tips!

  • Habe Problem selber lösen können:


    Code
    list.setOnItemClickListener(new OnItemClickListener() {
    	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
    
    		String text = String.valueOf(position);
    
    
            	Log.i("Test", text);
                }
            });
  • Habe nun folgendes Problem. Möchte bei Klick auf ein listView-Item eine neue Activity aufrufen mit:




    Ich bekomme aber folgende Fehlermeldung:
    "The constructor Intent(new AdapterView.OnItemClickListener(){}, Class) is undefined"



    Was ist der Fehler?

  • Der Konstruktor von Intent verlangt als ersten Parameter einen Context, "this" ist aber in diesem Fall keine Activity (und kein Context) sondern ein Objekt der Klasse AdapterView.OnItemClickListener. Darum geht es so nicht.


    new Intent (, CountActivity.class) sollte funktionieren ( muss ein Pointer auf das aktuelle Activity Objekt sein)
    oder
    new Intent (getApplicationContext (), CountActivity.class)


    Elegant wäre m.E. aus dem OnItemClickListener nicht direkt die neue Activity zu starten, sondern eine Methode der aktuellen Activity aufzurufen und aus dieser die neue Activity zu starten. Diese könnte dann auch aus unterschiedlichen Event Handlern verwendet werden und dort ist auch "this" ein Context.

  • Hallo zusammen,


    ich habe nochmals ein Problem. Der folgende Code funktioniert prima mit normalem Klick:




    Aber wie muss das ganze für einen langen Klick aussehen? Stehe irgendwie auf dem Schlauch.
    Aber wie muss das

  • OK, jetzt hab ichs selbst gefunden. Hatte wohl mal einen Schreibfehler drin.


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!