2016-08-09 38 views
1

I auszulösen haben eine Schnittstelle, die eine Methode genannt drawCharts() hat, ich habe ein BaseFragmentClass die diese Schnittstelle implementiert, nun erklärt ich eine weitere ChildFrgament Klasse, die BaseFragmentClass erstreckt, habe ich versucht drawCharts() Methode außer Kraft zu setzen in ChildFragment Klasse, aber es ist überhaupt nicht ausgelöst. Unten ist mein Code-Schnipselkann nicht überschreiben Methode

+0

Ist es 'onDraw()' oder 'drawCharts()'? –

+0

@MikeM. Bearbeitete meine Frage – Rahul

+0

Wie versuchen Sie, diese Methode auszulösen? –

Antwort

0

Methoden werden nicht ausgelöst, nur weil sie in einem Elternteil deklariert sind, sollten Sie sie von irgendwo anrufen.

Im folgenden Beispiel Sie diese Methode aufrufen, nachdem einige Schaltfläche geklickt wurde:

interface IDraw { 
    public void drawCharts(); 
} 

public class BaseFragment extends Fragment implements IDraw { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    // this method is triggered by a click on a button 
    public void onDrawButtonClick(View v) { 
     // this will call a method implemented by a particular fragment - a child 
     drawCharts(); 
    } 

    @Override 
    public void drawCharts() { 

    } 
} 

public class ChildFragment extends BaseFragment { 
    @Override 
    public void drawCharts(){ 
     // have some stuff to execute 
     // but not able to trigger 
    } 
} 

Sie können auch versuchen, diese Methode von der Mutter onCreateView oder onResume Methoden auslösen, hängt davon ab, was Sie tun müssen. Java stellt sicher, dass die Methode von einer tatsächlichen Klasse und nicht von einer übergeordneten Klasse aufgerufen wird.