我想从第二个活动向主要活动发送确认。如果该复选框已标记,则我要设置Intent
数据,并将活动返回的Result
设置为true
。
否则,如果复选框未标记,则我想要:
完全删除意图,就像没有设置
一样 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消息的操作?另外,我想知道处理它的最佳方法是什么?
答案 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