Вынести повторяющийся код

Ответить
Аватара пользователя
antihawk
Сообщения: 84
Зарегистрирован: 09 июн 2013, 16:14

Вынести повторяющийся код

Сообщение antihawk » 07 июл 2015, 23:30

Есть кусок кода, который повторяется в каждом Activity, как вынести в отдельный класс? Никак не получается реализовать это.

Код: Выделить всё

if (sPrefSettings.contains(APP_PREFERENCES_BACKICON))
		{
			backIconAccept  = sPrefSettings.getInt(APP_PREFERENCES_BACKICON, 1);
			
			switch (backIconAccept)
			{
			case 1:
				RelativeLayoutHomeworkAdd.setBackgroundResource(R.drawable.back1);
				break;	
			case 2:
				RelativeLayoutHomeworkAdd.setBackgroundResource(R.drawable.back2);
				break;
			case 3:
				RelativeLayoutHomeworkAdd.setBackgroundResource(R.drawable.back3);
				break;
			}
		}

Dark67
Сообщения: 72
Зарегистрирован: 23 июл 2012, 23:11

Re: Вынести повторяющийся код

Сообщение Dark67 » 07 июл 2015, 23:34

Можно создать абстрактный класс потомок Activity и от него наследоваться всем остальным Активитям )))

Аватара пользователя
antihawk
Сообщения: 84
Зарегистрирован: 09 июн 2013, 16:14

Re: Вынести повторяющийся код

Сообщение antihawk » 08 июл 2015, 00:06

Dark67 писал(а):Можно создать абстрактный класс потомок Activity и от него наследоваться всем остальным Активитям )))
Я так и попробовал, но реализация подкачала. Нужна конкретная помощь с кодом.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Вынести повторяющийся код

Сообщение rezak90 » 08 июл 2015, 00:40

Помощь в наследовании? Хм... могу посоветовать любую книгу по ООП)))
R.id.team
Политика на форуме запрещена

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Вынести повторяющийся код

Сообщение doter.ua » 08 июл 2015, 10:40

В каком-нибудь своем классе:

Код: Выделить всё

public static myMethod( int backIconAccept, RelativeLayout RelativeLayoutHomeworkAdd ){
    switch (backIconAccept) 
            { 
            case 1: 
                RelativeLayoutHomeworkAdd.setBackgroundResource(R.drawable.back1); 
                break;     
            case 2: 
                RelativeLayoutHomeworkAdd.setBackgroundResource(R.drawable.back2); 
                break; 
            case 3: 
                RelativeLayoutHomeworkAdd.setBackgroundResource(R.drawable.back3); 
                break; 
      } 
}
в активити:

Код: Выделить всё

    if (sPrefSettings.contains(APP_PREFERENCES_BACKICON)) { 
          MyClass.myMethod( sPrefSettings.getInt(APP_PREFERENCES_BACKICON, 1), RelativeLayoutHomeworkAdd );
     }
ЗЫ с наследованием тоже норм, х3 почему у тебя не получилось. В таких случаях кидают код своего "супер" класса.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Ответить