2012-05-11 60 views
0

Android 2.1的我有一個通過複選框,將打開一個對話框主題活動的活動onChecked功能Android的 - 通過Eclipse</p> <p>刪除對話框主題活動

進出口創造有意向這個新的對話爲主題的活動。

問題是,一旦完成對話,我該如何解除對話主題活動? (現在它的方式,我必須發送一個新的意圖,以通過點擊一個按鈕回到以前的活動)

任何幫助將大大apprieciated!

代碼片段:

主要活動:

cbReminder.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (isChecked) 
     {     
      Intent intent = new Intent(getApplicationContext(), DateTimeDialog.class); 
      startActivity(intent); 
     } 
    } 
}); 

對話主題活動:

public void onClick(View v) { 
    if (v.getId() == R.id.b_datetime_save) 
    { 

    } 
    else if (v.getId() == R.id.b_datetime_cancel) 
    { 
     finish(); 
     Intent intent = new Intent(getApplicationContext(), MakeNoteActivity.class); 
     startActivity(intent); 
    } 
} 
+1

完成()應該做那個工作,你確定你沒有以任何方式重寫活動歷史嗎? – Overv

+0

是的,我使用完成(),但我從某種原因添加了意圖,謝謝,救了我一個該死的好幾分鐘。 – Pisti

+0

所以你在添加Intent之前沒有用finish()來測試它? :P – Overv

回答

1

如您指定,的確是沒有必要的意圖返回到之前的活動,並應被刪除。

要從對話框返回後取消選中該複選框,您可以使用startActivityForResult併爲您返回時設置回調。

打開的對話框是這樣的:

Intent intent = new Intent(getApplicationContext(), DateTimeDialog.class); 
startActivityForResult(intent, UNIQUE_IDENTIFIER); 

然後回調添加到同一個活動:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == UNIQUE_IDENTIFIER) 
    { 
     cbReminder.setChecked(false); 
    } 
} 

UNIQUE_IDENTIFIER可以是任何數字,它唯一標識此對話框。如果您還有其他問題,請告訴我。

+0

是的它的工作正常,但我現在有另一個問題,我需要取消選中主要活動中的複選框,一旦我完成對話主題活動,任何想法如何? – Pisti

+0

謝謝,工作完美! – Pisti