2016-08-09 2 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 
    } 
} 

Вы можете также попытаться вызвать этот метод из родителей onCreateView или onResume методов, зависит от того, что вам нужно сделать. Java гарантирует, что метод вызывается из фактического класса, а не из родителя.

Смежные вопросы