Android-删除以对话框为主题的活动
通过eclipse的Android 2.1 我有一个活动,通过复选框onChecked函数打开一个以对话框为主题的活动 我正在创建这个新的以对话为主题的活动 问题是,一旦我完成对话主题的活动,我该如何取消它?(现在的情况是,我必须发送一个新的意图,以便通过单击按钮返回到以前的活动) 任何帮助都将不胜感激 代码段: 主要活动:Android-删除以对话框为主题的活动,android,Android,通过eclipse的Android 2.1 我有一个活动,通过复选框onChecked函数打开一个以对话框为主题的活动 我正在创建这个新的以对话为主题的活动 问题是,一旦我完成对话主题的活动,我该如何取消它?(现在的情况是,我必须发送一个新的意图,以便通过单击按钮返回到以前的活动) 任何帮助都将不胜感激 代码段: 主要活动: cbReminder.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void
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);
}
}
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data )
{
if ( requestCode == UNIQUE_IDENTIFIER )
{
cbReminder.setChecked( false );
}
}
对话主题活动:
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);
}
}
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data )
{
if ( requestCode == UNIQUE_IDENTIFIER )
{
cbReminder.setChecked( false );
}
}
正如您所指定的,返回到上一个活动确实不需要该意图,应该将其删除 要在从对话框返回后取消选中该复选框,可以使用
startActivityForResult
并设置返回时的回调
按如下方式打开对话框:
Intent intent = new Intent( getApplicationContext(), DateTimeDialog.class );
startActivityForResult( intent, UNIQUE_IDENTIFIER );
然后向同一活动添加回调:
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);
}
}
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data )
{
if ( requestCode == UNIQUE_IDENTIFIER )
{
cbReminder.setChecked( false );
}
}
UNIQUE\u标识符可以是唯一标识此对话框的任何数字。如果您还有任何问题,请告诉我。finish()应该做这项工作,您确定您没有以任何方式覆盖活动历史记录吗?是的,我使用finish(),但出于某种原因我添加了意图,谢谢,为我节省了他妈的好几分钟。所以在添加意图之前,您没有仅使用finish()进行测试吗是的,它工作得很好,但是我现在有另一个问题,我需要取消选中主活动中的复选框,一旦我完成了以对话框为主题的活动,你知道怎么做吗?