2016-06-28 55 views
0

我想從第二項活動向主要活動發送確認。如果複選框被標記,則我想設置Intent數據並將從活動返回的Result設置爲true取消/修改意向消息

否則,如果該複選框是無人盯防的話,我想要麼:

  • 修改已設置爲false
  • 意圖完全消除的意圖,如果它是沒有設置

    ConfirmCheckBox.setOnClickListener(new View.OnClickListener() { 
    
    @Override 
    public void onClick(View view) { 
    
         // Is the view now checked? 
         boolean checked = ((CheckBox) view).isChecked(); 
    
         if (checked) { 
          Intent data = new Intent(); 
          data.putExtra(EXTRA_CONFIRM, true); 
          setResult(RESULT_OK, data); 
         } 
         else 
         { 
          // Remove or modify to false. 
         } 
        } 
    }); 
    

我該如何執行修改或取消Intent消息的操作?另外,我想知道處理它的最佳方法是什麼?

回答

1

您可以簡單地將複選框值用作Intent的值。沒有必要擁有這個if/else結構。

@Override 
public void onClick(View view) { 

    // Is the view now checked? 
    boolean checked = ((CheckBox) view).isChecked(); 
    Intent data = new Intent(); 
    data.putExtra(EXTRA_CONFIRM, true); 
    setResult(RESULT_OK, data); 
} 

在你MainActivityonActivityResult你可以簡單地檢查意圖額外的EXTRA_CONFIRM並決定如何,如果該值是真/假反應。

這是處理活動之間數據發送的基本方法。 延伸閱讀: https://developer.android.com/training/basics/intents/result.html

2

您可以使用removeExtra()方法除去額外使用getIntent()替換它replaceExtras()的意圖

刪除的說法:

getIntent().removeExtra("search"); 

替換爲捆綁新增功能:

Bundle extras = new Bundle(); 
    extras.putString("key","Value"); 
    getIntent().replaceExtras(extras);