Android 显示片段Onclick
我有一个错误 FragmentManager fm=getFragmentManager() 当我点击时,是否有通行证活动的解决方案?那我需要什么Android 显示片段Onclick,android,Android,我有一个错误 FragmentManager fm=getFragmentManager() 当我点击时,是否有通行证活动的解决方案?那我需要什么 public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> { private List<ItemObject> itemList; private Context context; public RecyclerV
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
private List<ItemObject> itemList;
private Context context;
public RecyclerViewAdapter(Context context, List<ItemObject> itemList) {
this.itemList = itemList;
this.context = context;
}
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null);
RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView);
return rcv;
}
@Override
public void onBindViewHolder(final RecyclerViewHolders holder, final int position) {
holder.cardText.setText(itemList.get(position).getName());
holder.cardPhoto.setImageResource(itemList.get(position).getPhoto());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
switch (position){
case 0:
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frameLayout, new FragmentNewGame(), "newGame");
ft.addToBackStack(null);
ft.commit();
公共类RecycleServiceAdapter扩展了RecyclerView.Adapter{
私人清单项目清单;
私人语境;
公共RecycleServiceAdapter(上下文上下文,列表项列表){
this.itemList=itemList;
this.context=上下文;
}
@凌驾
public RecycleServiceWholders onCreateViewHolder(视图组父级,int-viewType){
View layoutView=LayoutFlater.from(parent.getContext()).flate(R.layout.card\u View\u list,null);
RecyclerViewWholders rcv=新的RecyclerViewWholders(布局视图);
返回rcv;
}
@凌驾
BindViewHolder上的公共无效(最终RecycleriveWholders holder,最终整型位置){
holder.cardText.setText(itemList.get(position.getName());
holder.cardPhoto.setImageResource(itemList.get(position.getPhoto());
holder.itemView.setOnClickListener(新视图.OnClickListener(){
@覆盖公共void onClick(视图v){
开关(位置){
案例0:
FragmentManager fm=getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.frameLayout,newfragmentnewgame(),“newGame”);
ft.addToBackStack(空);
ft.commit();
替换此:
FragmentManager fm = getFragmentManager();
为此:
FragmentManager fm = ((Activity)context).getFragmentManager();
那么您的代码应该如下所示:
FragmentManager fm = ((Activity)context).getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frameLayout, new FragmentNewGame(), "newGame");
ft.addToBackStack(null);
ft.commit();
或
错误是什么?快速的google看起来像是
getFragmentManager
是一种活动
方法…-很久没有使用Android/Java了,但他的工作可能表明getFragmentManager
属于活动,并且表明RecyclerView.Adapter
不继承活动…所以你的解决方案看起来很简单正确。但是,我已经2-3年没有在Android上编写代码了……我也不确定……啊,别担心,我几个月前就遇到了同样的问题,我这样解决了它,让我们看看它是否对他有效:D
FragmentTransaction ft = ((Activity)context).getSupportFragmentManager().beginTransaction();
ft.replace(R.id.frameLayout, new FragmentNewGame(), "newGame");
ft.addToBackStack(null);