使用一个适配器两个ListViews是不错的做法..?

时间:2017-01-20 18:55:39

标签: android listview android-fragments android-adapter

我有一个列表,我希望在两个片段中以不同方式显示。 这意味着我需要两个ListView(每个片段中有一个),但是我还需要两个适配器吗?或者我可以简单地使用一个适配器作为两个列表,因为当数据发生变化时,我希望更新两个列表。

编辑:不同的显示意味着我想在第一个片段和第二个片段的日历上显示按字母顺序排序的任务。

(或者可能有更简单的方法来解决这个问题?)

适配器:

public class TasksAdapter extends ArrayAdapter<Task> {

    public TasksAdapter(Context context, ArrayList<Task> tasks) {
        super(context, 0, tasks);
    }

    @Override
    public View getView(int position, View convertView, @NonNull ViewGroup parent) {
        Task task = getItem(position);

        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_task, parent, false);
        }

        return convertView;
    }
}

1 个答案:

答案 0 :(得分:1)

是的,如果适配器的构建方式适合您要在Fragment中使用的数据类型,那么您当然可以使用单个适配器。

这取决于您想要完成的具体内容,但有以下几点需要考虑:

  • 只需实例化适配器的两个单独实例,然后将实例传递到.setAdapterListView的{​​{1}}方法。
  • 您可以在编辑器中使用适配器中的不同视图持有者,查看RecyclerView方法。
  • 如果适配器中的数据不仅仅是简单的基元,请考虑将模型类编写为适用于您正在使用的两种类型数据的模型列表对象。

请注意,您应该使用getItemViewType()