我基于这个惊人的演示了一个可搜索的回收者视图: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>)
因此,我无法解密此错误消息,并且无法查看我需要将其作为参数参数放置的内容。或者,我应该将它们放在一个不同的方法中吗?
感谢您提前提供任何帮助。