3

こんにちは、これが重複した質問であることは知っていますが、他のスレッドから解決策を見つけることができませんでした.

ここに私の問題があります.5つのフラグメントを持つ下部のナビゲーションバーを持つアプリがあります. アプリのショートカットを介してそれらのフラグメントを開きたいです。

ここで私が作成したものは、

ショートカット.xml

<shortcuts xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
    android:shortcutId="first"
    android:enabled="true"
    android:icon="@drawable/shortcut_1"
    android:shortcutShortLabel="@string/shortcut_short_label_one"
    android:shortcutLongLabel="@string/shortcut_long_label_one"
    tools:targetApi="n_mr1">
    <intent
        android:action="com.xxxxxxx.xxxx.FIRST"
        android:targetPackage="com.xxxxxxx.xxxx.test"
        android:targetClass="com.xxxxxxx.xxxx.test.MainActivity" />
</shortcut>
<!-- Specify more shortcuts here. -->
<shortcut
    android:shortcutId="second"
    android:enabled="true"
    android:icon="@drawable/shortcut_2"
    android:shortcutShortLabel="@string/shortcut_short_label_two"
    android:shortcutLongLabel="@string/shortcut_long_label_two"
    tools:targetApi="n_mr1">
    <intent
        android:action="com.xxxxxxx.SECOND"
        android:targetPackage="com.xxxxxxx.xxxx.test"
        android:targetClass="com.xxxxxxx.xxxx.test.SecondFragment" />
</shortcut>
</shortcut> 

MainActivity の onCreate() は次のとおりです。

private static final String Second = "com.xxxxxxx.xxxx.SECOND";

    //code vomited  

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

        if (Second.equals(getIntent().getAction())){
            SecondFragment secondFragment = new SecondFragment();
            android.support.v4.app.FragmentTransaction fragmentTransactionTwo = getSupportFragmentManager().beginTransaction();
            fragmentTransactionTwo.replace(R.id.content_main, secondFragment, "Fragment two");
            fragmentTransactionTwo.commit();
        }

        BottomNavigationView navigation = findViewById(R.id.navigation);
        BottomNavigationViewHelper.disableShiftMode(navigation);     //disabling the shitty shifting mode
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        FirstFragment firstFragment = new FirstFragment();
        android.support.v4.app.FragmentTransaction fragmentTransactionOne = getSupportFragmentManager().beginTransaction();
        fragmentTransactionOne.replace(R.id.content_main, firstFragment, "Fragment one");
        fragmentTransactionOne.commit();
    }

ここで、最初のアクティビティが正常に起動しますMainActivity()。しかし、2 番目のショートカットをクリックしても何も起こりません。

誰が私が間違っているのか説明してくれますか?

4

2 に答える 2