如何从片段中的RecyclerView适配器启动活动 [英] How to start activity from RecyclerView adapter in fragment

查看:184
本文介绍了如何从片段中的RecyclerView适配器启动活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法从RecyclerViewAdapter单击RecyclerView到新的Activity.

我在这里打ItemClick.

DayAdapter.java :

holder.setItemClickListener(new ItemClickListener() {
        @Override
        public void onClick(View view, int position, boolean isLongClick) {
            openProgramActivity(view, position);
        }
    });
}

此功能将打开一个新的Activity:

This function opens a new Activity:

public void openProgramActivity(View view, int position) {
    //Intent openProgramActivity = new Intent(context, ProgramActivity.class);
    Intent openProgramActivity = new Intent(view.getContext(), ProgramActivity.class);
    openProgramActivity.putExtra("index",position);
    view.getContext().startActivity(openProgramActivity);
}

FragmentDay30.java :

public class FragmentDay30 extends Fragment {

private View view;

public static FragmentDay30 newInstance() {
    FragmentDay30 fragment = new FragmentDay30();
    Bundle args = new Bundle();
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.fragment_30day, container,false);

    ViewPager slideViewPager = (ViewPager) view.findViewById(R.id.slideViewPager);
    SlideAdapter slideAdapter = new SlideAdapter(getActivity());
    slideViewPager.setAdapter(slideAdapter);

    RecyclerView fragment30datRecyclerView = (RecyclerView) view.findViewById(R.id.fragment30dayRecyclerView);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
    fragment30datRecyclerView.setLayoutManager(linearLayoutManager);
    DayAdapter dayAdapter = new DayAdapter(getActivity());
    fragment30datRecyclerView.setAdapter(dayAdapter);

    return view;
}

我尝试使用getActvity()getContext(),但不使用新的Activity.

I try to use getActvity() and getContext() but not to new Activity.

推荐答案

将contaxt传递给recyclerview适配器构造器

Pass contaxt to recyclerview adapter constructor like this

Context context;
MyAdapter(Context context, .....){
this.context=context;
}

通话活动

context.startActivity(......);

这篇关于如何从片段中的RecyclerView适配器启动活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆