2016-07-08 17 views
0

Ich habe einen Array-Adapter und darin einen Imagbutton-Listener, der eine Aktivität aufruft.java.lang.ClassCastException: android.app.ContextImpl kann nicht in "Aktivität" auf ImageButton Android umgewandelt werden

Oberhalb meiner ListView habe ich und eine Eingabe-Suche eines ListView-Elements.

Als ich nach einem Artikel suchen, indem Sie die Anfangsbuchstaben eingeben und klicken Sie auf das Bild Knopf

viewHolder.discounts.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 


      Intent intent = new Intent(getContext(), DisplayDiscounts.class); 
      intent.putExtra("CustomerId",String.valueOf(cu.getId())); 
      ((Customers) getContext()).startActivity(intent); 

     } 
    }); 

ich java.lang.ClassCastException: android.app.ContextImpl nicht

auf „Activity“ gegossen werden

Wie kann ich das beheben?

Kann ich die Suche nach Eingaben stoppen, wenn ein Element gefunden wird?

Antwort

0

Ihre Besetzung ist hier der problematischste Teil:

((Customers) getContext()).startActivity(intent); 

nur die Besetzung fallen und getContext().startActivity(..) stattdessen verwenden. entweder

+0

Jetzt bekomme ich Anrufe startActivity() von außerhalb eines Aktivitäts Kontext erfordert die FLAG_ACTIVITY_NEW_TASK Flagge. –

+0

rufen Sie dies von einem Dienst an? Was ist der Kontext? – Nima

+0

von Array-Adapter –

0

können Sie einen Activity Bezug auf Ihre Aktivität übergeben oder versuchen ((Customers) v.getContext()).startActivity(intent);