2016-07-30 13 views
0

Meine Adapterklasse:android-Fragment und Aktivität: andere Schnittstelle, gleiche Instanz

private CheckFavourite checkFavourite; 
private ItemCLickCallback itemCLickCallback; 

public void setCheckFavourite(final CheckFavourite checkFavourite){ 
    this.checkFavourite = checkFavourite; 
} 

public void setItemCLickCallback(final ItemCLickCallback itemCLickCallback){ 
    this.itemCLickCallback = itemCLickCallback; 
} 

public interface ItemCLickCallback { 
    void onItemClick(int p); 
    void onSecItemClick(int p); 
} 

boolean isFavourite = checkFavourite.getFavourite(winkel); 

public interface CheckFavourite{ 
    boolean getFavourite(Winkel winkel); 
} 

Fragment:

public class Overview extends Fragment implements Adaptor.ItemCLickCallback{ 

    adaptor = new Adaptor(mijnwinkels, this.getActivity()); 
    adaptor.setItemCLickCallback(this); 
    // Code is incomplete, but this works. 

    adaptor.setCheckFavourite(this.getActivity()); 
    // This doesn't work. 
} 

Aktivität:

public class SecondActivity extends AppCompatActivity implements Adaptor.CheckFavourite{ 


@Override 
public boolean getFavourite(Winkel winkel){ 
    boolean isFavourite = false; 
    MyDBHandler dbHandler = new MyDBHandler(this,null,null,1); 
    isFavourite = dbHandler.isFavourite(user,winkel); 
    return isFavourite; 
} 

} 

Mein Fragment implementiert die erste Schnittstelle und Mein Adapter wird in meinem Fragment erstellt. Meine Aktivität implementiert die zweite Schnittstelle, da ich Daten benötige, die in meiner Aktivität die Funktion ausführen, aber es ist derselbe Adapter. Wie kann ich das zur Arbeit bringen? Das ist mein Fehler:

Error:(60, 51) error: incompatible types: FragmentActivity cannot be converted to CheckFavourite. 

Irgendwie funktioniert es jetzt zufällig? Ich verstehe es nicht, aber ich denke, es ist behoben. Ich habe nichts geändert, aber der Code fängt an zu arbeiten, lol.

+0

Haben Sie eine Klasse namens 'FragmentActivity'? Bevor Sie die Zeile aufrufen, die den Fehler verursacht ('adaptor.setCheckFavourite (this.getActivity());'), was ist Ihre 'LogCat' Ausgabe für' Log.d ("TAG", getActivity(). GetClass(). GetName()); '? – PPartisan

Antwort

1

Vielleicht brauchen Sie nur die gegossenen

adaptor.setCheckFavourite((Adaptor.CheckFavourite)this.getActivity()); 
+0

Das funktioniert nicht :( – user3117628

0

Der Code arbeitet jetzt in Betrieb genommen hinzuzufügen. Ich habe nichts geändert, aber es funktioniert. Ziemlich seltsam, aber ich denke, das war schließlich keine gute Frage. Meine Ausreden.