Несовместимые типы при использовании getFragmentManager()
У меня есть следующий код:
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);
и пишет:
Неправильный тип аргумента 2
Возможно, это связано с расширением Activity (может быть, все будет нормально с AppCompat, но я не могу изменить, как будто я знаю, тема, которую я использую в своем приложении, не совместима с Appcompat)
1 ответ
Ошибка, которую вы используете android.support.v4.app.FragmentManager
тогда вы должны использовать getSupportFragmentManager()
Нужно изменить
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);