取消/修改意图消息

时间:2016-06-28 09:26:45

标签: android android-intent

我想从第二个活动向主要活动发送确认。如果该复选框已标记,则我要设置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消息的操作?另外,我想知道处理它的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

你可以使用removeExtra()方法删除额外内容并使用getIntent()替换它.replaceExtras()

从意图中删除参数:

  getIntent().removeExtra("search");

用新的附加物替换捆绑包:

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

答案 1 :(得分: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);
}

MainActivity onActivityResult中,您只需检查EXTRA_CONFIRM的Intents Extra,然后决定如果值为true / false,如何做出反应。

这是处理活动之间数据发送的基本方法。 进一步阅读: https://developer.android.com/training/basics/intents/result.html