2014-10-09 3 views
0

Исключительно, если это глупый вопрос.Доступ к внешнему классу Java для интерфейсов интерфейса внутреннего класса

У меня есть внешний интерфейс «Фрагмент» с интерфейсом внутреннего класса. Этот интерфейс реализуется только одним другим классом Activity, используя «реализует OuterFragment.ParentActivityListener».

Я хотел бы иметь несколько констант для использования с методами интерфейса. Но эти константы также должны быть доступны во внешнем классе. Есть ли способ получить к ним доступ из внешнего класса, как показано ниже? Это плохой шаблон для использования, хотя будет очень ограниченное использование этого интерфейса (= 1)?

public class OuterFragment extends Fragment { 

    public interface ParentActivityListener { 
     public int OKBUTTON = 5; 
     public void onPlayertimerMessage(int idFromFragment, int idFromPosition, int iAction); 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, 
      ViewGroup container, Bundle savedInstanceState) { 
      // Access interface constant from here? 
    } 

} 

Любой ввод оценивается!

ответ

1

Если это константа, то это должно быть статичным и окончательным:

public static final int OKBUTTON = 5; 

И вы к нему доступ с OuterFragment.ParentActivityListener.OKBUTTON.

+1

Вы уверены, что 'OuterFragment.' необходим? Интерфейс ParentActivityListener должен быть в пределах внутреннего класса. – aioobe

+0

@aioobe Я думаю, что лучше использовать полное имя. Он должен работать без OuterFragment при доступе из OuterFragment. – Eran

+0

спасибо, что работает отлично! Лучше ли использовать enum вместо этого в классе интерфейса? (Он работает также без «OuterFragment.», Но я сохраню его там.) – Koniak