2017-12-23 3 views
0

Ich habe Probleme mit dem Zugriff auf eine boolean einer abstrakten Klasse aus einem Fragment. Da ein Fragment keine abstrakte Klasse implementieren kann, wie soll ich es tun? Kann mir jemand helfen? Unten ist mein Code.Zugriff boolean in einem abstrakten Klassenformular Fragment

public abstract class BaseChatViewModel extends BaseObservable { 

protected User mUser; 
protected UploadImage uploadImage; 
protected String mLoggedUserEmail; 

private MessageAdapterViewModelContract messageAdapterViewModelContract; 

public BaseChatViewModel(User user, String loggedUserEmail) { 
    mUser = user; 
    mLoggedUserEmail = loggedUserEmail; 
} 
public BaseChatViewModel(UploadImage user, String loggedUserEmail) { 
    uploadImage = user; 
    mLoggedUserEmail = loggedUserEmail; 
} 

public BaseChatViewModel(UploadImage usehhr) { 

    uploadImage =usehhr; 

} 

public String getName() { 
    return !mUser.getEmail().equals(ConstantsFirebase.FIREBASE_LOCATION_CHAT_GLOBAL) 
      ? mUser.getName() : mUser.getName().replace("0", ""); 
} 

public String getEmail() { 
    return mUser.getEmail(); 
} 


public String getPhotoUrl() { 
    return mUser.getPhotoUrl(); 
} 

public boolean isOnline() { 
    return mUser.getEmail().equals(ConstantsFirebase.FIREBASE_LOCATION_CHAT_GLOBAL) || mUser.isOnline(); 
} 

public void onItemClick(View view) { 
} 


public boolean isSender() { 
    return mLoggedUserEmail.equals(mUser.getEmail()); 

} 



} 

} 

brauche ich isSender aus einem Fragment zuzugreifen. Wie kann ich das machen?

+1

"Da ein Fragment keine abstrakte Klasse erweitern kann" Wo haben Sie das gelernt? –

+0

Das Objekt welcher Klasse (geerbt von BaseChatViewModel) verwenden Sie in Ihrem Fragment? –

+0

hat meine Antwort Ihr Problem gelöst? selbst wenn es nicht so wäre, wenn du es lösen willst, solltest du zurück zu den Leuten kommen, die antworten, was passiert ist –

Antwort

0

Diese Frage hat nichts mit "abstrakten Klassen" zu tun. Vielmehr geht es nur darum, Objekte einer Klasse zu erstellen und im richtigen Umfang verfügbar zu machen. Sie müssen zuerst ein Objekt vom Typ BaseChatViewModel erhalten. Dann können Sie alle öffentlichen Methoden für dieses Objekt aufrufen.

0

Da ein Fragment

ist nur schlicht falsch eine abstrakte Klasse nicht erweitern können.

Aller Wahrscheinlichkeit nach haben Sie dieses Problem, weil Ihr Fragment, auf das Sie BaseChatViewModel erweitern möchten, android.app.Fragment statt android.support.v4.app.Fragment importiert.