2015-11-27 4 views
0

предупреждение: Я новичок;android определить функцию по фрагменту активности

Первоначально я использую baseActivity, содержащий все мои функции. но в последнее время я использую некоторый фрагмент вместо этого, но как я могу получить что-то вроде baseActivity?

пример кода:

public class baseActivity extends Activity{ 
..... 
    public void showMyWarning(String s){ 
     .... 
    } 
} 

public class myActivity extends baseActivity{ 
    ..... 
    showMyWarning("WARNING!!"); 
} 

но в фрагменте, как я могу это сделать: в одном классе содержат все свои функции. все функции могут использоваться во всей деятельности и фрагменте?

большое спасибо.

+1

насчет создания статической функции? Например: 'YourUtils.showYourWarning (Context, String)' –

+0

, если есть лучший способ? может быть ? нет модификация кода. – xtr3mz

+0

сделать статическую переменную экземпляра вашей myActivity в самом классе myActivity и инициализировать ее onCreate(); myActivity myActivityInstance = this; Затем в фрагменте вызовите свой метод, используя этот статический экземпляр. Поскольку вы используете фрагмент, так что фрагмент уже привязан к родительскому классу myActivity. myActivity.myActivityInstance.showMyWarning(); –

ответ

1

Случай 1: Использование BaseFragment

Я думаю, что вам нужно создать BaseFragment так же, как baseAcivity. Пример кода для создания BaseFragment приведен ниже.

Код:

public class BaseFragment extends Fragment{ 
..... 
public void showMyWarning(String s){ 
    .... 
} 
} 

public class YourFragment extends BaseFragment{ 
..... 
    showMyWarning("WARNING!!"); 
} 

Случай 2: Доступ открытый метод класса

Если метод из baseActivity который вы хотите получить доступ в любом фрагменте нужно сделать, как показано ниже.

Код:

new baseAcivity().showMyWarning("WARNING!!"); 

Случай 3: Доступ статический метод класса

Для статического использования метода, вам нужно сделать showMyWarning("") в static.

Код:

public class baseActivity extends Activity{ 
    ..... 
    public static void showMyWarning(String s){ 
    .... 
} 
} 

Используйте статический метод.

Код

baseActivity.showMyWarning("WARNING!!"); 

Надежда его помогает :)

+0

большое спасибо! @pRaNaY – xtr3mz

+0

Ваше приветствие :) – pRaNaY

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