0

私には2つの活動があります:ActivityAそしてActivityB

Activity Aには3 つの線形レイアウトが含まれています。showReport各線形レイアウトをクリックすると、開始するメソッドが呼び出されますActivityB

戻るボタンをクリックすると、関数でActivityB結果が得られ、更新しようとしています。ActivityAonActivityResultActivityA

しかし、問題は -

線形レイアウトをクリックすると、onActivityResultが呼び出され、 myresultCodeが と等しくなる0ため、条件がtrueActivity Aなり、再度呼び出されます。

戻るボタンを押したときだけ状態になるように呼び出すActivity A方法または取得する方法。resultCode0

私のコードサンプル -

アクティビティ A:

int REQUEST_CODE = 2;

public void showReport(View v) 
    {
            tag = v.getTag().toString();
        Intent intent = new Intent(this, ActivityB.class);
        intent.putExtra("name", tag);
        this.setResult(RESULT_OK, intent);
        startActivityForResult(intent, REQUEST_CODE); 
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);

        if (resultCode == 0) {
            Intent in = new Intent(this, ActivityA.class);
            startActivity(in);  
        }
    }
4

2 に答える 2

0

いくつかのグローバル変数を試してみてくださいApplicationClass(アプリケーションがインストールされるときに初めて呼び出されます)

public  boolean  check =false; 
  • ブール値のブール値を確認します( check初めて なので、それ以上は進みません)onActivityResultActivityAcheckfalse
  • もう一度押してからActivityB値を設定するときcheck=true
  • あなたが再び電話するときにfalse価値を作るcheckActivityB

だからあなたactivityAはそれが形になった場合にのみ電話をかけますActivityB

于 2013-04-10T12:52:41.187 に答える