2016-08-09 93 views
1

我有一個接口,它有一個名爲drawCharts()的方法,我有一個BaseFragmentClass它實現了這個接口,現在我再聲明一個ChildFrgament類,它正在擴展BaseFragmentClass,我試圖覆蓋drawCharts()方法在ChildFragment類,但它並沒有被觸發。以下是我的代碼片段:無法觸發覆蓋方法

interface IDraw{ 
    public void drawCharts(); 
} 

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

    @Override 
    public void drawCharts(){ 
    } 
} 

public class ChildFragment extends BaseFragment{ 

    @Override 
    public void drawCharts(){ 
     // have some stuff to execute 
     // but not able to trigger 
    } 
} 
+0

它是'onDraw()'或'drawCharts()'? –

+0

@MikeM。編輯我的問題 – Rahul

+0

你如何嘗試觸發這種方法? –

回答

0

方法不會因爲它們在父級中聲明而被觸發,您應該從某處調用它們。

在下面的例子中,你調用這個方法被點擊一些按鈕後:

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 
    } 
} 

您不妨一試觸發來自父母的onCreateViewonResume方法這種方法,取決於你需要做什麼。 Java將確保該方法是從實際的類而不是從父類調用的。