0

所以这是我的问题。我正在使用对话框片段来显示一些信息。在那个片段中,我有一个由数组列表填充的微调器视图。通常我在我的片段中创建该适配器,如下所示:

ArrayAdapter<String> teamsAdapter = new ArrayAdapter<String>(getActivity(),  
android.R.layout.simple_spinner_item, Variables.teamNames); 

teamsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       Variables.spinner.setAdapter(teamsAdapter);

变量是我保存所有变量的用户定义类。现在这是我的问题。我有大约 10 个 DialogFragment,几乎所有的 DialogFragment 都有微调器。我想在我的变量类中定义那个适配器,每当我需要它时,我都会从我的变量类中调用它。不幸的是,我需要在我的适配器构造函数中使用 getActivity() 。我无法绕过它。

顺便说一句,这是个好主意还是我应该使用界面?如果有人能真正告诉我为什么要在 android 中使用 java 接口,那就太棒了?

4

1 回答 1

1

您的片段仍然需要调用一些变量方法来检索微调器并将其添加到您的布局中,对吗?因此,当您进行该调用时,您可以将 Activity 作为 Context 传递,如下所示:

ArrayAdapter<String> teamsAdapter = Variables.getAdapterForTeams(getActivity());

关于接口的问题不是 Android 而是 Java 问题。如果在 Java 中使用接口是有意义的,那么在 Android 中使用它也是有意义的。有大量关于 Java 的文献和在线资源将解释为什么以及何时应该使用接口。我敢肯定,如果你在网上搜索,你会发现很多关于它的资源。

于 2013-04-29T00:25:44.663 回答