2012-01-06 7 views
0

Я создал несколько небольших приложений для Android во время обучения. Являясь разработчиком PHP, вам сложно привыкнуть к этому.Общие классы в моем приложении

Мне особенно интересно, как я могу определить пару «общих» функций в отдельном классе. Например, у меня есть функция, которая проверяет, доступно ли сетевое подключение, а если нет, отображается диалоговое окно, в котором говорится, что пользователь должен включить его. В настоящее время эта функция существует в нескольких моих действиях. Конечно, это кажется странным - я полагаю, было бы логичнее определить его один раз и включить его в необходимые действия.

Я попытался поместить его в новый класс и включил этот класс в первоначальное действие. Но это не сработало, поскольку, например, getBaseContext() больше не принимается.

Мне интересно, как это сделать. Для чего я должен быть Google? Что называется этим механизмом?

ответ

1

Вам необходимо создать класс со статическими методами. Как это

public class HelperUtils { 
    public static void checkNetworkConnection(Context ctx) {...} 
} 

Тогда вы можете вызвать его из любого места, как это:

HelperUtils.checkNetworkConnection(this.getContext()); 

Предполагая, что текущий класс имеет контекст.

Вы должны прочитать книги об общих концепциях ООП, где объясняются различные типы методов.

+0

спасибо! Я знаю концепции ООП и как их обрабатывать на PHP, но я должен привыкнуть к ним в java ... много работы впереди :) – user410932

1

Вы можете, например, создать класс - назовем его NetworkUtils. В этом классе вы можете создать статический метод boolean isNetworkConnectionAvailable() и вернуть true, если доступно, и false в противном случае. В этом классе Вы можете создать еще один статический метод аннулируется showNoConnectionDialog (Activity активности) - и в этом методе вы создаете диалоговые начиная с

public static void showNoConnectionDialog(Activity activity) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    //setting message, listener etc. and finally 
    builder.create().show(); 
} 

В вашей деятельности, где вы хотите, чтобы проверить и отрегулировать сетевое соединение, вы должны позвонить:

if (!NetworkUtils.isConnectionAvailable(getApplicationContext())) { 
    NetworkUtils.showNoConnectionDialog(YourActivityClassName.this) 
} 

Я думаю, это должно сработать.

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