声明要在片段中使用的非活动类中的数组适配器

时间:2013-04-28 23:52:48

标签: android android-arrayadapter android-dialogfragment

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

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个DialogFragments,几乎所有都有微调器。我想在我的Variables类中定义该适配器,无论何时我需要它,我都会从我的变量类中调用它。不幸的是,我需要在我的适配器构造函数中使用getActivity()。我不能绕过它。

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

会很棒

1 个答案:

答案 0 :(得分:1)

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

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

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