0

MainActivityで定義されているいくつかのメソッドを実行しようとしていますが、SecondActivityという別のアクティビティで実行しています。これらのメソッドは、MainActivityで定義された変数も変更します。Androidの別のアクティビティからのアクティビティのメソッドと変数を使用する

Activityが別のものをカバーすると、最初のアクティビティがどれだけ長く生き続けるかは保証されず、多くの場合、非常に迅速に破壊されるので、1つのアクティビティでメソッドを呼び出すことに頼ることはできません別のものからActivity。これは、Androidが動作する方法でもありません。しかし、私がMainActivityにいるときに使用しているMainActivityインスタンスをSecondActivityに入れることは可能でしょうか?

私はすでにMainActivitySerializableを作成し、それをメソッドIntent.putSerializableExtraに渡してみましたが、機能しませんでした。

ありがとうございます!

+0

これは探しているのかどうかはわかりませんが、親クラスのsuper.methodを使用するには、メインクラスを2番目のクラスに拡張することができます。 'SecondActivity extends MainActivity' – CookieMonster

+0

こんにちはジュリア。私は以前にアプリケーションの開始時に作成したものと同じインスタンスを使用する方法を探しています。つまり、私がMainActivityにいるとき、私はMainActivityのインスタンスを使用しています。SecondActivityに行くと、私はそれを保持したいと思います。出来ますか? – Nahue

+0

[ページ](https://developer.android.com/training/basics/activity-lifecycle/recreating.html)をご覧ください。これは便利な機能です。 'アクティビティの状態に関する追加データを保存するには、onSaveInstanceState()コールバックメソッドをオーバーライドする必要があります。このメソッドは、ユーザーがあなたのアクティビティを離れるときに呼び出され、予期せずアクティビティが破棄された場合に保存されるBundleオブジェクトを渡します。 **後でアクティビティインスタンスを再作成する必要がある場合は、同じBundleオブジェクトをonRestoreInstanceState()メソッドとonCreate()メソッドの両方に渡します。 ** ' – CookieMonster

答えて

0

私はあなたをよく理解していますが、静的メソッドを含むクラスを作成することをお勧めします。主な活動で変数を変更するよう

class HelperMethods { 
    static void method1(args){ 
    //do something using arguments 
    } 
} 

class MainActivity { 
    HelperMethods.method1(new Object); 
} 
class SecondActivity { 
    HelperMethods.method1(new Object2); 
} 

、あなたはstaticとしてこれらの変数を設定し、HelperMethodsクラス内のメソッドからそれらを修正します。

+0

こんにちは。 MainActivityが開始されたときに以前作成したMainActivityインスタンスが必要です。SecondActivityでそのインスタンスを必要とするので、それは役に立たなくなります。 – Nahue

関連する問題