У меня есть простая деятельность, которая выполняется, как ожидалось.
import android.app.Activity;
import android.app.FragmentManager;
// import android.support.v4.app.FragmentManager;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// FragmentManager fm = getSupportFragmentManager(); // ActionBarActivity
FragmentManager fm = getFragmentManager(); // Activity
}
}
Затем я заменил
import android.app.FragmentManager;
с
import android.support.v4.app.FragmentManager;
чтобы я мог поддерживать мои старые устройства. Однако это сообщает об ошибке:
Incompatible types.
Required: android.support.v4.app.FragmentManager
Found: android.app.FragmentManager
Что я здесь делаю неправильно?
Популярным решением, которое я нашел, является использование getSupportFragmentManager() вместо этого, но это работает только для ActionBarActivites [edit - see answer] и FragmentActivities.
не может конвертировать из android.app.FragmentManager в android.support.v4.app.FragmentManager
Другое релевантное решение указывает на использование FragmentActivity вместо этого, но у этого, похоже, есть те же проблемы с наследием.
Метод getFragmentManager() - undefined для типа MyActivity
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
// FragmentManager fm = getSupportFragmentManager(); // ActionBarActivity
FragmentManager fm = getFragmentManager();
}
}
Я уверен, что решение этого будет уже на SE, но это нелегко (для меня) найти. Минимальный пример должен помочь другим людям понять это тоже.
- Я новичок в Android.