タブレット用のフラグメントを使用してアプリを作成していますが、これまでに左側にいくつかのボタンを作成し、ボタンをクリックするとフラグメントが表示されます。
しかし、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
からクラスを拡張する必要もあります。