replace フラグメント android アクティビティを持つv4 getFragmentManager - 互換性のない型


1 Answers

use getSupportFragmentManager() instead, but this only works for ActionBarActivites.

間違っていると、あなたのFragmentActivityで動作するはずです.FragmentActivityがサポートパッケージに入っています。古いデバイスをサポートしているときに、 activityfragmentfragment managersなどからのすべてのインポートにandroid.support.v4.必要android.support.v4. サポートパッケージを使用していることを指定します。 使用しincompatible compile time error.

What am I doing wrong here?

上記のように、サポートパッケージと非サポートパッケージを組み合わせて、 incompatible compile time errorする可能incompatible compile time error

android activity fragment view 取得

私は期待通りに動く簡単な活動をしています。

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 [編集 - 回答を見る]とFragmentActivitiesでのみ機能します。

android.support.v4.app.FragmentManagerにandroid.app.FragmentManagerから変換できません

もう1つの関連する解決策は、代わりにFragmentActivityを使用することを指していますが、これは同じレガシー問題を抱えているようです。

メソッドgetFragmentManager()は、タイプ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です。


Related