2017-11-16 5 views
0

アクティビティAをアクティビティBに開始しました。アクティビティAが "startActivityForResult()"を使用できないと考えると、アクティビティBは別のアクティビティBこれは、別のアクティビティを開始して自分自身を終了させることを意味します)、それが起こった場合、アクティビティAは結果をもう期待しません。また、2番目のアクティビティBはアクティビティAの結果を渡すことができません。子アクティビティの親アクティビティメソッドを呼び出す

アクティビティAにはモデルのインスタンスがあります。とにかくアクティビティBからモデルにアクセスできますか?

答えて

0

私はMainActivityに追加することでこれを解決:

private static MainActivity main; 

public static MainActivity getMain() { 
    return main; 
} 

私は、これは良い習慣ではありません承知しています。

1

あなたのような、持続性の層を使用する必要がありますし...内部データベース

  • 共有設定
  • クラウドサービス
  • ファイルシステム
    • モデルタイプの状態を保存します。このようにして、コンフィグレーションの変更によって状態が永続するため、AndroidによってActivityインスタンスが再作成されます。

    1

    ActivityAでは、Serializableを実装し、Intentを使用する必要があります。 試してみてください。あなたは私の悪い英語のため

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_b); 
    
        // get Activity A 
        if (getIntent() != null){ 
         AcitivityA acitivityA = (AcitivityA) getIntent().getSerializableExtra("ACTIVITY_A"); 
        } 
    } 
    

    申し訳意図から活動Aを得ることができるアクティビティBで

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
    
        // Go to Activity B 
        Intent gotoActivityB = new Intent(this, ActivityB.class); 
        gotoActivityB.putExtra("ACTIVITY_A", this); 
        startActivity(gotoActivityB); 
    } 
    

    :(

    関連する問題