【发布时间】:2015-06-02 14:43:17
【问题描述】:
在启动时,我的应用会启动一个显示“项目”列表视图的片段。当我点击一个项目时,会启动一个显示项目详细信息的新片段,包括另一个“任务”列表视图(每个项目对象可以包含许多任务)。
我在为第二个列表视图初始化 arrayadapter 时遇到问题。
tasksAdapter = new TasksArrayAdapter(getActivity(),selectedProject.getTasks());
它无法编译,Android Studios 提供以下原因:
incompatible types. Required: ProjectsArrayAdapter. Found: TasksArrayAdapter
ProjectsArrayAdapter 是在前一个片段上设置的,如下所示:
//initialize a custom ArrayAdapter to connect the object to the listView
projectsAdapter = new ProjectsArrayAdapter(getActivity(), Projects.getInstance().getProjects());
projectsList = (ListView) view.findViewById(R.id.listViewProjects);
projectsList.setAdapter(projectsAdapter);
//=========================================================================================
//when you click on a project from the list
//=========================================================================================
//create onClickListener for listView items and launch project details fragment on click
projectsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentProject myProject = new FragmentProject();
//grab the object you clicked on
Bundle args = new Bundle();
args.putInt("ARG_POSITION", position);
myProject.setArguments(args);
//launch project details fragment
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.main_layout, myProject);
transaction.commit();
}
});
为什么我不能创建这个新的阵列适配器?
【问题讨论】:
-
这个仍然难倒我。我很确定第二个参数(arraylist)不是问题。我认为这与项目 arrayadapter 已经使用的上下文有关。
-
是不是每个activity只能有一个ListView(或者一个list view adapter)?如果我使用子片段,也许我不会遇到这个问题。在这种情况下:填充项目列表的片段。用户点击一个项目,一个显示项目详细信息和任务列表视图的子片段被启动。
-
以下帖子表明我正在尝试做的事情是可能的,尽管我宁愿使用新的片段而不是新的活动,因为它在设备之间会更加灵活。 stackoverflow.com/questions/4575132/…
-
这对其他人来说似乎不是问题,这表明我一定只是在某个地方犯了一个愚蠢的错误,但我看不到任何这样的事情。
标签: android-fragments android-listview android-listfragment nested-lists child-fragment