无法从 android.app.FragmentManager 转换为 android.support.v4.app.FragmentManager [英] cannot convert from android.app.FragmentManager to android.support.v4.app.FragmentManager
问题描述
我正在使用 Fragments 为平板电脑创建一个应用程序.到目前为止,我已经在左侧创建了一些按钮,并且在单击按钮时会出现这些片段.
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.
但我在 MainActivity.java 文件中遇到错误类型不匹配错误:无法从 android.app.FragmentManager
转换为 android.support.v4.app.FragmentManager
" 这就是我无法实现它的主要原因.我已经导入了android.support.v4.app.FragmentManager
.
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?
我的 MainActivity.java 代码
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();
}
};
}
推荐答案
您需要在代码中使用 getSupportFragmentManager()
,而不是 getFragmentManager()
- 见
You need to use getSupportFragmentManager()
in your code, not getFragmentManager()
- see here for more details.
你还需要从 android.support.v4.app.FragmentActivity
扩展你的类,而不仅仅是从标准的 android.Activity
来获取这个方法.
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屋!