Intent myIntentA = new Intent(MainMap.this, AudioStream.class);
myIntentA.putExtra(AUDIO_STREAM,AUDIO_STREAM_URL);
MojProg.this.startActivity(myIntentA);
これはうまくいきません。「これ」は「このクラス」を意味するからです。別のクラスでは使用できません(はい、使用できますが、別の方法があります。フォーラム、このサイト、またはオラクル Web サイトで「これ」について学習してください。)。それがその警告の理由です。
あなたの質問は「コンテキストをアクティビティ以外のクラスにプルするにはどうすればよいですか?」のようです。(Intent() の最初のパラメータは Context です)。
これを行うには、メイン アクティビティで Context インスタントを作成し、次のようにベース コンテキストをそれに割り当てます。
static Context context;
....
context = this.getBaseContext();
それがあなたの主な活動だったことを忘れないでください。次に、アクティビティ以外のクラスで、このコンテキストをプルして、次のような意図で使用できます。
Context context;
Intent intent;
....Constructor:
context = MainActivity.context;
intent = new Intent(context, YourSecondActivity.class); // you have to declare your second activity in the AndroidManifest.xml
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this is required to call "Intent()" in a non-activity class.
//And then you can call the method anywhere you like (in this class of course)
context.startActivity(intent);
Ok。もう 1 つの手順を実行すると、準備が整います。AndroidManifest.xml で、2 番目のアクティビティを最初のアクティビティと同様に宣言します。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".YourSecondActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
</activity>
あなたは今準備ができています。ただし、最後の警告として、遅延を避けるために、別のアクティビティを開く前にアクティビティを破棄することを忘れないでください。楽しむ。