2011-07-25 111 views
0

我有一個Android Activity,名爲Activity A,如下所示。當我點擊saveButton時,saveData()方法被調用,然後finish()方法被調用並關閉Activity A.當我點擊Activity A中的triggerActivity_B按鈕去活動B,然後點擊triggerActivity_A按鈕在Activity B中返回到Activity 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

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%有點低。其次:你是不是叫它?難道第二項活動A沒有任何可以保存的東西嗎?你是否在該方法中加入了'Log.d'? – Nanne

+2

你可以顯示'saveData()'的代碼嗎? –

+0

謝謝 - 您能否在saveData()函數中添加Log.d()以查看它是否實際被調用?你可以使用這個:'Log.d(「DEBUG」,「是的,它被稱爲」)''。檢查「DEBUG」標籤的LogCat。 –

回答

0

的一點是,如果你點擊ActivityB的triggerActivity_A按鈕,ActivityA的新實例正在取得;它不會返回到您的第一個ActivityA,因此可能沒有什麼可以保存。

還要注意,當您按下按鈕打開ActivityB時,您正在調用finish(),您的第一個activityA會被佔用。如果您想要保留第一個ActivityA不要調用finish(),並且在按下ActivityB中的按鈕時不要開始新的活動,只需調用finish()。

沒有理由認爲saveData()未被調用。

請確保您的接受度。