当没有更多数据时,SwipeCard适配器触发操作

时间:2015-09-24 08:57:37

标签: java android android-arrayadapter adapter swipe

我正在开发一个类似Tinder的应用程序。其中一个活动是一个swipecard屏幕,我用我服务器的JSON数据填充。用户意图看到包含关于其他用户的信息的卡,并且他可以向右滑动(以指示满足)或向左滑动(以指示忽略)。我正在使用this库来实现滑动功能,我在AsyncTask中从服务器获取更多数据:

// Get Cards from server
getLoaderManager().initLoader(0, savedInstanceState,
    new LoaderManager.LoaderCallbacks<ArrayList<CardVO>>() {
        @Override
        public Loader<ArrayList<CardVO>> onCreateLoader(int id, Bundle args) {
            return new PersonsLoader(IntrosActivity.this, LibraryAPI.getInstance().getCurrentUserId(), LibraryAPI.getInstance().getCurrentEvent().eventId);
        }

        @Override
        public void onLoadFinished(Loader<ArrayList<CardVO>> loader, ArrayList<CardVO> data) {
            thisAdapter.addData(data);
            mProgressDialog.hide();
        }

        @Override
        public void onLoaderReset(Loader<ArrayList<CardVO>> loader) {
            mProgressDialog.hide();
        }
    }
).forceLoad();  

thisAdapter是与滑动库关联的ArrayAdapter,它保存来自服务器的数据。目前,当我的适配器中卡少于3张时,我要​​求服务器提供更多数据。

预期功能的一部分(就像在Tinder中一样),当用户指示遇到另一个用户时,我检查这是否是双重匹配,如果是,我会显示一条对话消息,说明它们是匹配在一起的他们现在可以互相发送消息了。

我面临的问题如下:当用户耗尽卡片列表(他们已经刷过目前为止的每张相关卡片)时,我想将它们重定向到静态屏幕。我不确定这个动作的触发器应该是什么。

我尝试了明显的选择,并在thisAdapter变空时重定向它们。这导致了一个我似乎无法找到解决方案的错误:如果我向右滑动以满足适配器中的最后一个人(他们也想见我),对话框会简要显示,然后活动到触发重定向,直接进入静态屏幕。

关于如何解决这个问题的任何建议?或者将代码重构为更健壮的东西?我本质上是在寻找一种巧妙的方法来触发将用户带到静态屏幕的NoMoreMatchesActivity

0 个答案:

没有答案