我有以下代码:
package asus.example.com.notes1;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ShareActionProvider;
public class MainActivity extends Activity {
private void selectItem(int position){
Fragment fragment;
switch (position){
case 1:
fragment = new PizzaFragment();
break;
case 2:
fragment = new PastaFragment();
break;
case 3:
fragment = new StoresFragment();
break;
default:
fragment = new TopFragment();
}
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
}
我不知道为什么,但是Android Studio在以下行下划线:FragmentTransaction ft = getFragmentManager().beginTransaction();
并写道:
不兼容的类型。需要: 找到android.support.v4.app.FragmentTransaction: android.app.FragmentTransaction
试图改变:
android.support.v4.app.FragmentTransaction
上:
android.app.FragmentTransaction
但是在这种情况下,它取消界定以下行:
ft.replace(R.id.content_frame, fragment);
并写道:
第二次辩论类型错误
也许是因为扩展了Activity(也许对于AppCompat来说一切正常,但是我无法更改,好像我知道,我在应用中使用的主题与Appcompat不兼容)
答案 0 :(得分:1)
您正在使用android.support.v4.app.FragmentManager
的错误,那么您应该使用getSupportFragmentManager()
需要改变
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);