Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Объект, реализующий интерфейс - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android WebView OAuth2.0 Google+ http://www.cyberforum.ru/android-dev/thread1516077.html
Не получается получить ключ доступа в WebView, в браузере работает. Для получения токена нужно перейти по ссылке https://soundcloud.com…up&response_type=token здесь описание Там в ответе...
Программирование Android Не получается запустить sdk-менеджер не получается запустить sdk manager в android studio в ubuntu /opt/android-sdk-linux - это путь к нему. Я сначала установил sdk скачал нужные версии а потом android studio. Но в итоге android studio... http://www.cyberforum.ru/android-dev/thread1516073.html
Программирование Android Как добавить фрагменты в Tabbed Activity (Андроид Студио)?
Добрый день. Хочу сделать в Андроид Студио листалку на шаблоне Tabbed Activity. Когда добавляла этот шаблон, Студия автоматически создала саму листалку-pager (activity_main_activity2) и один фрагмент...
Программирование Android Как пройтись циклом по всем Buttons Лаяута
Как пройтись циклом по всем кнопкам в данном лаяуте? т.е. надо считывать у всех кнопок параметр Text у всех кнопок..
Программирование Android Какова роль этого класса http://www.cyberforum.ru/android-dev/thread1515856.html
AvailabilityNotifier
Программирование Android Как сделать оплату в приложении Здравствуйте. Как сделать оплату в приложении, то есть некоторые уровни в игре скажет с 11 по 15 будут платными, один раз заплатил и они стали бесплатными. Пробовал этот метод, но пока выдает ошибку... подробнее

Показать сообщение отдельно
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873

Объект, реализующий интерфейс - Программирование Android

17.08.2015, 18:53. Просмотров 436. Ответов 14
Метки (Все метки)

Добавлено через 5 минут
Есть, например, интерфейс Parcelable.Creator. В Android Studio, для того, чтобы объявить объект , реализующий данный интерфейс, используется конструкция:
Java
1
2
3
4
5
6
7
8
9
10
11
    
public static final Parcelable.Creator<MyObject> CREATOR = new Parcelable.Creator<MyObject>() {
         распаковываем объект из Parcel
   public MyObject createFromParcel(Parcel in) {
            Log.d(LOG_TAG, "createFromParcel");
            return new MyObject(in);
        }
        public MyObject[] newArray(int size) {
            return new MyObject[size];
        }
    };
Я захотел сделать по старинке-я создал класс A, который реализует интерфейс Parcelable.Creator:
Java
1
2
3
4
5
6
7
8
9
10
 public class A implements Parcelable.Creator<MyObject>{
 
        public MyObject createFromParcel(Parcel in) {
            Log.d(LOG_TAG, "createFromParcel");
          return new MyObject(in);
        }
        public MyObject[] newArray(int size){
            return new MyObject[size];
        }
    }
Далее я хочу объявить переменную этого класса CREATOR аналогично объявлению в первом случае:
Java
1
public static final  A CREATOR= new A();
Но у меня подсвечивается красным newA() и написано, что MyObject.this cannot be referenced from a static context. Объясните пожалуйста, что это значит? И почему в первом случае можно объявлять каким то образом экземпляр класса, реализующий интерфейс, при этом не указывая сам класс, а указывая лишь ссылку на него:CREATOR, а во втором случае, как учит Герберт Шилдт, нельзя? Кстати, если убрать static, то получается во втором случае. Почему в первом случае static можно указать, а во втором нельзя? Спасибо заранее, надеюсь доступно объяснил вопрос.

Добавлено через 14 минут
Если же класс A создать отдельно, не вложенным в класс MyObject, то все хорошо, почему так?

Добавлено через 6 минут
Может быть нельзя создать переменную экземпляра вложенного класса статичной?

Свел все к минимому:
почему данная конструкция не допустима?
Java
1
2
3
4
5
6
7
8
package others;
 
public class Nested {
class nested2{
    
}
static nested2 a=new nested2();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru