不能转换android.app.FragmentManager到android.support.v4.app.FragmentManager [英] cannot convert from android.app.FragmentManager to android.support.v4.app.FragmentManager

查看:912
本文介绍了不能转换android.app.FragmentManager到android.support.v4.app.FragmentManager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建使用片段为tablet.I迄今创造左边几个按钮的应用程序和片段出现在点击按钮。

但我遇到的错误在我的MainActivity.java文件类型不匹配的错误:无法从 android.app.FragmentManager 转换为 android.support .v4.app.FragmentManager 这是我无法实现它。我已经进口的主要原因 android.support.v4.app.FragmentManager

如何解决我的问题?

我的$ C $下MainActivity.java

 进口android.app.Activity;
进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.support.v4.app.FragmentManager;
进口android.support.v4.app.FragmentTransaction;
进口android.view.View;
进口android.widget.Button;

公共类MainActivity延伸活动{
    片段片段
    按钮BTN1,BTN2,btn3,btn4,btn5,btn6;
    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        BTN1 =(按钮)findViewById(R.id.btn1);
        BTN2 =(按钮)findViewById(R.id.btn2);
        btn3 =(按钮)findViewById(R.id.btn3);
        btn4 =(按钮)findViewById(R.id.btn4);
        btn5 =(按钮)findViewById(R.id.btn5);
        btn6 =(按钮)findViewById(R.id.btn6);

        FragmentManager FM = getFragmentManager();
        FragmentTransaction英尺= fm.beginTransaction();

        StartFragment myfragment =新StartFragment();
        ft.add(R.id.myfragment,myfragment);
        ft.commit();
        btn4.setOnClickListener(btnOnClickListener);
        btn5.setOnClickListener(btnOnClickListener);
        btn6.setOnClickListener(btnOnClickListener);
    }



        Button.OnClickListener btnOnClickListener =新Button.OnClickListener(){
            @覆盖

            公共无效的onClick(视图v)
            {
                片段newfragment;
                如果(V == BTN1)
                {
                    newfragment =新片段1();
                }
                否则,如果(V == BTN2)
                {
                    newfragment =新Fragment2();
                }
                否则,如果(V == btn3)
                {
                    newfragment =新Fragment3();
                }
                否则,如果(V == btn4)
                {
                    newfragment =新Fragment4();
                }
                否则,如果(V == btn5)
                {
                    newfragment =新Fragment5();
                }
                否则,如果(V == btn6)
                {
                    newfragment =新Fragment6();
                }
                其他
                {
                    newfragment =新StartFragment();
                }
                FragmentTransaction交易= getFragmentManager.beginTransaction();
                transaction.replace(R.id.myfragment,newfragment);
                transaction.addToBackStack(空);
                transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                器transaction.commit();
            }
        };
        }
 

解决方案

您需要使用 getSupportFragmentManager()在code,不是 getFragmentManager() - 在这里看到更多的细节:<一href="http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#getSupportFragmentManager()">http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#getSupportFragmentManager()

您还需要从 android.support.v4.app.FragmentActivity 扩展您的类,而不是从标准 android.Activity 来得到这个方法。

I am creating an app using Fragments for tablet.I have so far created some buttons on the left side and the fragments appear on clicking the buttons.

But i am experiencing error in my MainActivity.java file "Type mismatch error:cannot convert from android.app.FragmentManager to android.support.v4.app.FragmentManager" And that is the main reason that i cannot implement it.I have already imported android.support.v4.app.FragmentManager.

How can i resolve my problem?

My code for MainActivity.java

      import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    Fragment fragment;
    Button btn1,btn2,btn3,btn4,btn5,btn6;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1=(Button)findViewById(R.id.btn1);
        btn2=(Button)findViewById(R.id.btn2);
        btn3=(Button)findViewById(R.id.btn3);
        btn4=(Button)findViewById(R.id.btn4);
        btn5=(Button)findViewById(R.id.btn5);
        btn6=(Button)findViewById(R.id.btn6);

        FragmentManager fm=getFragmentManager();
        FragmentTransaction ft=fm.beginTransaction();

        StartFragment myfragment=new StartFragment();
        ft.add(R.id.myfragment,myfragment);
        ft.commit();
        btn4.setOnClickListener(btnOnClickListener);
        btn5.setOnClickListener(btnOnClickListener);
        btn6.setOnClickListener(btnOnClickListener);
    }



        Button.OnClickListener btnOnClickListener=new Button.OnClickListener(){
            @Override

            public void onClick(View v)
            {
                Fragment newfragment;
                if(v==btn1)
                {
                    newfragment=new Fragment1();
                }
                else if(v==btn2)
                {
                    newfragment=new Fragment2();
                }
                else if(v==btn3)
                {
                    newfragment=new Fragment3();
                }
                else if(v==btn4)
                {
                    newfragment=new Fragment4();
                }
                else if(v==btn5)
                {
                    newfragment=new Fragment5();
                }
                else if(v==btn6)
                {
                    newfragment=new Fragment6();
                }
                else 
                {
                    newfragment=new StartFragment();
                }
                FragmentTransaction transaction=getFragmentManager.beginTransaction();
                transaction.replace(R.id.myfragment,newfragment);
                transaction.addToBackStack(null);
                transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                transaction.commit();
            }
        };
        }

解决方案

You need to use getSupportFragmentManager() in your code, not getFragmentManager() - see here for more details: http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#getSupportFragmentManager()

You also need to extend your class from android.support.v4.app.FragmentActivity, not just from standard android.Activity to get this method.

这篇关于不能转换android.app.FragmentManager到android.support.v4.app.FragmentManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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