2011-07-25 3 views
0

私は以下に示すアクティビティAと呼ばれるAndroidアクティビティを持っています。 saveButtonをクリックすると、saveData()メソッドが呼び出され、finish()メソッドが呼び出され、アクティビティAが閉じられます。アクティビティAのtriggerActivity_BボタンをクリックしてアクティビティBに移動し、次にtriggerActivity_Aボタンをクリックします。アクティビティBでアクティビティAに戻るには、saveButtonをクリックしてsaveData()メソッドが呼び出されず、finish()メソッドが呼び出されます。私がアクティビティから離れるときに実行するように見えるだけですが、なぜこれがわからないのですか?メソッドコールが実行されていません

あなたの助けが大歓迎です。

ActivityA.java

public class ActivityA extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     saveButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       saveData(); 
       finish(); 
      } 
     }); 

     triggerActivity_B.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent i = new Intent(ActivityA.this, ActivityB.class); 
       startActivity(i); 
       finish(); 
      } 
     }); 
    } 

    private void saveData() { 
     String desc = descriptionEntry.getText().toString(); 

     if (mRowId == null) { 
      long id = mDbHelper2.createDescription(desc); 
      if (id > 0) { 
       mRowId = id; 
      } 
     } else { 
      mDbHelper2.updateDescription(mRowId, desc); 
     } 
    } 
} 

ActivityB.java:あなたはActivityBでtriggerActivity_A]ボタンをクリックした場合

public class ActivityB extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     triggerActivity_A.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent i = new Intent(ActivityB.this, ActivityA.class); 
       startActivity(i); 
       finish(); 
      } 
     }); 
    } 
} 
+2

最初に古い質問をチェックし、回答を受け入れるという形でフィードバックを与えたり、正しいものがigvenでない場合は自分の回答を追加して受け入れます。 0%は少し低いです。第二に、それは呼ばれていませんか? 2番目のアクティビティAに保存するものがないことはありませんか?あなたはそのメソッドに 'Log.d'を入れましたか? – Nanne

+2

'saveData()'のコードを表示できますか? –

+0

ありがとうございます - 実際に呼び出されているかどうかを確認するためにsaveData()関数にLog.d()を追加してください。これを使うことができます: 'Log.d(" DEBUG "、"それは "と呼ばれています)'。 LogCatで "DEBUG"タグを確認してください。 –

答えて

0

ポイントがあり、ActivityAの新しいインスタンスが作られています;あなたの最初のActivityAに戻ることはないので、おそらく何も保存する必要はありません。

finish()を呼び出しているときにボタンを押してActivityBを開くと、最初のactivityAが存在することにも注意してください。最初のActivityAはfinish()を呼び出さず、ActivityBのボタンを押しても新しいアクティビティを開始しないようにするには、finish()だけを呼び出します)。

saveData()が呼び出されないと仮定する理由はありません。

あなたの受け入れを改善してください。

関連する問題