我一直用我认为的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应该驻留在哪里?
答案 0 :(得分:5)
我相信您已正确将适配器归类为演示者。
Presenter是适配器。
适配器充当View(ListView)和Model(您的用户列表)之间的中间人,并通过适配器的getView方法提供List中每个项目的View表示。