2016-08-09 92 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将确保该方法是从实际的类而不是从父类调用的。