“适配器”在MVP(被动视图)中的适用范围是什么?

时间:2014-11-04 20:17:05

标签: java android swing

我一直用我认为的Passive MVP来实现我的Android应用程序。

因此,例如在我的视图类中,我有一个ListView。

视图

ListView userListView;

当点击一个项目时,我会简单地在演示者上调用一个方法

userListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mPresenter.onUserSelected(position);

    }

});

我感到困惑的部分是ListView需要一个适配器。

演示

所以目前在我的主持人中我有这个:

private ArrayList<User> mUserList = new ArrayList<User>();

...

adapter = new UserListAdapter(getContext(), mUserList);
mView.setUserListAdapter(adapter);

当我想改变一些事情时,我会这样做:

mUserList.add(user);
adapter.notifyDataSetChanged();

这是适配器的正确位置吗?我问的原因是因为我最近想要使用swing做一些工作,并且出现了类似的问题,JLists需要一个看似非常相似的ListModel。那么对于swing,ListModel应该驻留在哪里?

1 个答案:

答案 0 :(得分:5)

我相信您已正确将适配器归类为演示者。

Presenter是适配器。

适配器充当View(ListView)和Model(您的用户列表)之间的中间人,并通过适配器的getView方法提供List中每个项目的View表示。