java - 无法从 android.app.FragmentManager 转换为 android.support.v4.app.FragmentManager

标签 java android android-listview android-fragments

我正在使用平板电脑的 Fragments 创建一个应用程序。到目前为止,我已经在左侧创建了一些按钮,并且在单击按钮时会出现 fragment 。

但我的 MainActivity.java 文件出现错误“类型不匹配错误:无法从 android.app.FragmentManager 转换为 android.support.v4.app.FragmentManager"这是我无法实现它的主要原因。我已经导入了 android.support.v4.app.FragmentManager

我该如何解决我的问题?

我的 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();
            }
        };
        }

最佳答案

您需要在代码中使用 getSupportFragmentManager(),而不是 getFragmentManager() - 请参阅 here了解更多详情。

您还需要从 android.support.v4.app.FragmentActivity 扩展您的类,而不仅仅是从标准 android.Activity 获取此方法。

关于java - 无法从 android.app.FragmentManager 转换为 android.support.v4.app.FragmentManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690364/

相关文章:

java - Windows cmd java没有输出

android - 如何在xamarin forms android中更改导航栏文本颜色

android - ORMLite - 如何返回列中包含某些字符串的所有行?

android - 获取从 CustomListView 检查的项目的名称并在下一个 Intent 中传递该项目

android - 可扩展 ListView 图标已删除但仍占用空白空间

java - 如何按降序对包含字符串的 arrayList 进行排序

java - Spring WebClient 下载图像

java - 身份验证流程中 grant_type=client_credentials 和 grant_type=password 之间的区别?

android - 如何通过用户名从数据库表中检索数据?

android - 如何在 Android 中获取 OnTouchListener 的 ListView 的位置?