2014-10-09 108 views
0

如果這是一個愚蠢的問題,請原諒我。Java外部類訪問內部類接口常量

我有一個帶有內部類接口的「片段」外部類。該接口僅由另一個使用「implements OuterFragment.ParentActivityListener」的Activity類實現。

我想有幾個常量用於接口方法。但是這些常量也需要在外部類中提供。有沒有一種方法可以從外部類訪問它們,如下所示?這是一種不好的模式,儘管這個接口的使用非常有限(= 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 2014-10-09 19:44:03

+0

@aioobe我認爲最好使用全名。如果從OuterFragment內部訪問,它應該沒有OuterFragment。 – Eran 2014-10-09 19:45:35

+0

謝謝你的工作很棒!在接口類中使用枚舉更好嗎? (它的工作方式也沒有「OuterFragment」,但我會保留在那裏) – Koniak 2014-10-09 19:51:05