0

次のように整数値 (ガイド) を次のクラス (アクティビティ) に渡します: さまざまなアクティビティで.. 最初に:

                public void onClick(View v) {

                Intent intent002a = new Intent(getApplicationContext(), GameOver002a.class);
                intent002a.putExtra("guide", 11001001);
                startActivity(intent002a);

            }

2番目:

                public void onClick(View v) {

                Intent intent003a = new Intent(getApplicationContext(), GameOver002a.class);
                intent003a.putExtra("guide", 11002001);
                startActivity(intent003a);

            }

等々..

次に、インテントを受け取ります。

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_game_over002a);

    onNewIntent(getIntent());
}
@Override
protected void onStart() {
super.onStart();
    UnityAds.changeActivity(this);

    UnityAds.init( this, "*******", this);

    UnityAds.setDebugMode(true);
    UnityAds.setTestMode(true);


    TextView neinTextView = (TextView) findViewById(R.id.nein_textview002a);
    if (neinTextView != null) {
        neinTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(getApplicationContext(), Startbildschirm.class);
                startActivity(intent);

            }


        });
    }


    TextView jatextview = (TextView) findViewById(R.id.ja_textview002a);
    if (jatextview != null) {
        jatextview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new AlertDialog.Builder(GameOver002a.this)

                        .setMessage("Watch a short ad to continue at the last checkpoint?")
                        .setNegativeButton(android.R.string.no, null)
                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface arg0, int arg1) {
                                if (UnityAds.setZone("rewardedVideo") && UnityAds.canShow()) {
                                    UnityAds.show();
                                }}
                        }).create().show();



            }

        });
    }

}


@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)

            .setMessage(R.string.zurück_zum_menü_frage)
            .setNegativeButton(android.R.string.no, null)
            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    Intent intent = new Intent(getApplicationContext(), Startbildschirm.class);
                    startActivity(intent);
                }
            }).create().show();
}

@Override
public void onHide() {

}

@Override
public void onShow() {

}

@Override
public void onVideoStarted() {

}

@Override
public void onVideoCompleted(String s, boolean b) {
    levelAuswahl();
}

@Override
public void onFetchCompleted() {
}

@Override
public void onFetchFailed() {
    TextView jatextview = (TextView) findViewById(R.id.ja_textview002a);
    if (jatextview != null) {
        jatextview.setText(R.string.videoladen_fail);
        jatextview.setClickable(false);
    }

}
@Override
public void onResume()
{
    super.onResume();
    UnityAds.changeActivity(this);

    onNewIntent(getIntent());
}

public void levelAuswahl() {
    int guide;
    guide = getIntent().getIntExtra("guide",0);
    if (guide == 11001001) {
        Intent intent = new Intent(getApplicationContext(), Story001a.class);
        startActivity(intent);
    }else if (guide == 11002001) {
        Intent intent = new Intent(getApplicationContext(), Story002b.class);
        startActivity(intent);
    }else if (guide == 11007001) {
        Intent intent = new Intent(getApplicationContext(), Story004a.class);
        startActivity(intent);
    } else {
        Intent intent = new Intent(getApplicationContext(), Startbildschirm.class);
        startActivity(intent);
    }

}
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    // getIntent() should always return the most recent
    setIntent(intent);
}

}

適切なアクティビティを選択するには.. ストーリーのすべての部分に独自のアクティビティがあります

次のシナリオ: アプリを起動し、Story002a アクティビティで失敗します..次に、インテントで整数値 (ガイド) を渡します.. 広告を正常に視聴した後、メソッド levelAuswahl() が呼び出されます (レベル チューザー)。インテントを受け取り、適切な if 句を取得し、Story001 からやり直します。この部分は正しく機能しますが、Story003a で失敗すると、Story002a とまったく同じインテントで値ガイドが渡されます。 onNewIntent() を使用していますが、同じアクティビティが開きます。

何を変更する必要がありますか? 何か案は?

前もって感謝します!

ここにマニフェストがあります:

    <?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.NoActionBar">
    <activity android:name=".Startbildschirm"
              android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".Tutorial"
        android:screenOrientation="landscape"/>
    <activity android:name=".Support"
        android:screenOrientation="landscape"/>
    <activity android:name=".GameOver"
        android:screenOrientation="landscape"/>
    <activity android:name=".Story001a"
        android:screenOrientation="landscape"/>
    <activity android:name=".Story002a"
        android:screenOrientation="landscape"/>
    <activity android:name=".Story002b"
        android:screenOrientation="landscape"/>
    <activity android:name=".Story003a"
        android:screenOrientation="landscape"/>
    <activity android:name=".Story003b"
        android:screenOrientation="landscape"/>

</application>

4

2 に答える 2

0

getIntent()Intentが開始された を返しますActivity(つまり、onCreate()呼び出される原因となった を返します。 の既存のインスタンスに戻り、GameOveronCreate()呼び出されていない場合は、 で新しくIntent配信されonNewIntent()ます。 にIntent渡されonNewIntent()た には正しいものが含まれている必要があります)。余分な価値。

これがあなたのケースでない場合は、あなたの状況について詳しく教えてください。

于 2016-08-24T21:14:20.570 に答える