我想在recyclelerview(一项)的onclick中打开另一个片段。如何在recyclerview点击监听器上打开另一个片段。我想移动到recyler视图上的另一个片段,一个列表打开另一个片段。我也设置了回收站视图和dapter。
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
ArrayList<ListCallback> listCallback = new ArrayList<>();
public static SearchResultFragment newInstance() {
return new SearchResultFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_search_result,
container, false);
recyclerView.addOnItemTouchListener(new
RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e)
{
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean
disallowIntercept) {
}
});
return view;
}`
答案 0 :(得分:1)
使用此链接为适配器设置onItemClickListener ...
然后将侦听器传递给RecyclerView适配器的构造函数。 在onitemclick上写这个..
Fragment fragment = new XYZFragment();
getActivity().getFragmentManager().beginTransaction..... and so on..
替换您当前的片段。
答案 1 :(得分:1)
你需要在适配器中编写onClickListner,如下所示。
.navbar
在适配器内部使用接口,如下所示
static class ViewHolder extends RecyclerView.ViewHolder {
private TextView name;
private ImageView image;
public ViewHolder(View itemView) {
super(itemView);
name = (TextView) itemView.findViewById(R.id.name);
image = (ImageView) itemView.findViewById(R.id.image);
}
public void bind(final ContentItem item, final OnItemClickListener listener) {
name.setText(item.name);
Picasso.with(itemView.getContext()).load(item.imageUrl).into(image);
itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// This is OnClick of any list Item
listener.onItemClick(item);
}
});
}
在您的父Activity中实现上面的接口并编写代码来替换Fragment。
public interface OnItemClickListener {
void onItemClick(ContentItem item);
}