3

私の例:

public static final String EXTRA_TARGET_FRAGMENT = "fragment_to_show";

    public static void show(Activity pActivity,
            Class<? extends Fragment> fragment) {
        Intent intent = new Intent(pActivity, HomeActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra(EXTRA_TARGET_FRAGMENT, fragment);
        pActivity.startActivity(intent);
    }

    @SuppressWarnings("unchecked")
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        mUpcomingTarget = (Class<Fragment>) intent
                .getSerializableExtra(EXTRA_TARGET_FRAGMENT);

}

mUpcomingTarget --> null、何が問題なのか理解できません。

4

3 に答える 3

5

putExtra(String, Serializable)言うの文書化

名前にはパッケージ プレフィックスを含める必要があります。たとえば、アプリ com.android.contacts は「com.android.contacts.ShowAll」のような名前を使用します。

EXTRA_TARGET_FRAGMENTパッケージプレフィックスで始まるように変更します。

于 2013-06-25T10:43:03.033 に答える
0

文字列 EXTRA_TARGET_FRAGMENT が両方のアクティビティで fragment_to_show と等しいかどうかを確認してください!! たまたま大文字が1つ違っていましたが、修正するとうまくいきました:)

于 2013-07-24T07:36:00.257 に答える