Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示片段Onclick_Android - Fatal编程技术网

Android 显示片段Onclick

Android 显示片段Onclick,android,Android,我有一个错误 FragmentManager fm=getFragmentManager() 当我点击时,是否有通行证活动的解决方案?那我需要什么 public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> { private List<ItemObject> itemList; private Context context; public RecyclerV

我有一个错误

FragmentManager fm=getFragmentManager()

当我点击时,是否有通行证活动的解决方案?那我需要什么

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);