在活动中实现可搜索的Recycler视图 - 无法实例化适配器对象

时间:2015-08-17 17:39:55

标签: java android android-fragments android-activity android-recyclerview

我基于这个惊人的演示了一个可搜索的回收者视图:https://github.com/Wrdlbrnft/Searchable-RecyclerView-Demo

我目前卡住了,试图在我的Activity中创建一个新的适配器对象。问题是该演示使用的是片段,我宁愿不使用片段,也不想使用片段。因此,在创建新的适配器对象时,demo会调用一个名为getActivity()的函数。我的问题是getActivity是一个片段函数。我的印象是,在Activity中使用的getActivity函数的等价物是.this,或者使用Context。但是,两者都没有为我工作。

以下是演示中MainFragment.java的方法我基于以下观点:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    setHasOptionsMenu(true);

    mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

    mModels = new ArrayList<>();

    for (String movie : MOVIES) {
        mModels.add(new ExampleModel(movie));
    }

    mAdapter = new ExampleAdapter(getActivity(), mModels);
    mRecyclerView.setAdapter(mAdapter);
}

现在,这是我的方法,名为populate(),由onCreate方法调用。我在新FriendDisplay的实例化参数上收到错误:

private void populate()
{
    final String[] friends = new String[]{"Friend 1", "Friend 2", "Friend 3", "Friend 4", "Friend 5", "Friend 6", "Friend 7", "Friend 8", "Friend 9", "Friend 10", "Friend 11", "Friend 12"};
    int[] navigationIcons = {R.drawable.ic_home, R.drawable.ic_account_multiple, R.drawable.ic_magnify};

    mRecyclerView.setLayoutManager(new LinearLayoutManager(FriendsActivity.this));

    mModels = new ArrayList<>();

    for (String friend : friends) {
        mModels.add(new FriendModel(friend));
    }

    mAdapter = new FriendDisplay(<NOT_SURE_WHAT_TO_USE_HERE>, mModels);

    mRecyclerView.setAdapter(mAdapter);
}

FriendDisplay将上下文作为第一个参数,但当我尝试使用上下文作为参数时,它会给我错误:

FriendDisplay (Context, java.util.List<com.revelry.adapters.FriendDisplay.FriendModel>) in FriendDisplay cannot be applied to (Context, java.util.List<com.revelry.adapters.FriendModel>)

因此,我无法解密此错误消息,并且无法查看我需要将其作为参数参数放置的内容。或者,我应该将它们放在一个不同的方法中吗?

感谢您提前提供任何帮助。

0 个答案:

没有答案