1

私のアプリケーションでは、スプラッシュ画面としてダイアログフラグメントを使用しているため、アプリの起動時にスプラッシュ画面が表示されます。androidバージョン3より前のデバイスでアプリを実行すると、「No such method error:getFragmentManager」のようなエラーが表示されます。を使用して解決できることを確認しgetSupportFragmentManager()ました。しかし、使用すると、スプラッシュダイアログが表示されません。誰か助けてください。前もって感謝します...

主な活動=>

        ft = getFragmentManager().beginTransaction(); //Here I am using getFragmentManager
    newFragment = SplashDialogFragment.newInstance();
    newFragment.show(MainActivity.ft, "dialog");

そして、これが私のスプラッシュスクリーンフラグメントです=>

public class SplashDialogFragment extends DialogFragment {

    private EditText mEditText;


    static SplashDialogFragment newInstance() {
        SplashDialogFragment f = new SplashDialogFragment();
        return f;
    }
    public void EditNameDialog() {
        // Empty constructor required for DialogFragment
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
        setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme);        
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.splash_fragment, container);


        return view;
    }

    public void show(FragmentManager supportFragmentManager, String string) {
        // TODO Auto-generated method stub


    }


}

そしてエラーログ=>

 > 12-07 11:09:09.330: E/AndroidRuntime(628): FATAL EXCEPTION: main
    12-07 11:09:09.330: E/AndroidRuntime(628): java.lang.NoSuchMethodError: com.myapp.mlm.MainActivity.getFragmentManager
    12-07 11:09:09.330: E/AndroidRuntime(628):  at com.madhyamam.malayalam2.MainActivity.onCreate(MainActivity.java:103)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.os.Handler.dispatchMessage(Handler.java:99)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.os.Looper.loop(Looper.java:123)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at android.app.ActivityThread.main(ActivityThread.java:3683)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at java.lang.reflect.Method.invokeNative(Native Method)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at java.lang.reflect.Method.invoke(Method.java:507)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    12-07 11:09:09.330: E/AndroidRuntime(628):  at dalvik.system.NativeStart.main(Native Method)
4

3 に答える 3

2

MainActivity を FragmentActivity に拡張することで、この問題を解決しました。以前は Activity.After を拡張していましたが、問題なく getSupportFragmentManager を使用しました。

于 2013-05-17T11:13:31.037 に答える
0

android.support.v4.app.Fragment; Fragment は API レベル 11 で使用できるため、次のリンクを参照してください:- http://developer.android.com/reference/android/support/v4/app/package-summary.html

とこのリンク:-

actionbarsherlock ライブラリで getFragmentManager() を使用すると、java.lang.NoSuchMethodError が発生する

libs にサポート jar ファイルを配置し、ビルド パス フォルダーに追加して、以前の代わりに android.support.v4.app.Fragment のようにインポートします。これがお役に立てば幸いです。

于 2012-12-07T06:05:40.173 に答える
0

3 より低いバージョンでは失敗することは明らかです。 http://developer.android.com/tools/extras/support-library.htmlをご覧ください 。

これはあなたに役立つかもしれません http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/

于 2012-12-07T06:11:10.283 に答える