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

nPn*_*nPn 5 java swing android

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

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

视图

ListView userListView;
Run Code Online (Sandbox Code Playgroud)

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

userListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

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

    }

});
Run Code Online (Sandbox Code Playgroud)

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

主持人

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

private ArrayList<User> mUserList = new ArrayList<User>();
Run Code Online (Sandbox Code Playgroud)

...

adapter = new UserListAdapter(getContext(), mUserList);
mView.setUserListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

当我想改变一些东西时,我这样做:

mUserList.add(user);
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*use 5

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

Presenter是适配器.

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