34

エラーが発生します

show(FragmentManager, String)型のメソッドDialogFragmentは引数に適用できません(FragmentManager, String)

package com.example.test1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void click(View view) {
        DialogFragment newFragment = new FireMissilesDialogFragment();
        newFragment.show(getFragmentManager(), "missiles");
    }

    public boolean onCreateOtionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
4

6 に答える 6

50

を使用しているため、呼び出しを使用してクエリできるインスタンスにandroid.support.v4.app.DialogFragment渡す必要があります。お役に立てれば。show()android.support.v4.app.FragmentManagergetSupportFragmentManager()

于 2012-11-01T11:07:28.000 に答える
30

問題は、サポート パッケージの FragmentManager を使用する必要があるのに、getFragmentManager() を呼び出すときにネイティブの FragmentManager を使用しているためです。変数 fm を初期化するときに getSupportFragmentManager() を呼び出してみてください

また、ネイティブ パッケージからではなく、サポート パッケージから DialogFragment を含めるようにする必要があります。

インポートすることでそれを行うことができます。

import android.support.v4.app.DialogFragment;
于 2012-11-01T11:09:28.273 に答える
19

ジンジャーブレッドでコードを実行したときにも同じ問題が発生しました。ただし、ICSでは正常に機能します。解決策は、

これの代わりに:

public class MainActivity extends Activity {
}

使用はFragmentActivtyを拡張します

public class MainActivity extends FragmentActivity {
}
于 2013-01-28T05:33:53.357 に答える
9

android.support.v4.app.FragmentManagerの代わりに使用する必要がありandroid.app.FragmentManagerます。

次に、電話する必要がありますが、そうでgetSupportFragmentManager()はありませんgetFragmentManager()

于 2012-11-01T11:08:43.443 に答える