如何从片段中的RecyclerView适配器启动活动 [英] How to start activity from RecyclerView adapter in fragment
本文介绍了如何从片段中的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屋!
查看全文