0

Android 2.1 通过 Eclipse

我有一个活动,通过复选框 onChecked 功能打开一个对话框主题活动

我正在使用 Intent 创建这个以对话框为主题的新活动。

问题是,一旦我完成对话主题活动,我该如何关闭它?(现在的情况,我必须发送一个新意图才能通过单击按钮返回上一个活动)

任何帮助将不胜感激!

代码片段:

主要活动:

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);
    }
}
4

1 回答 1

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可以是唯一标识此对话框的任何数字。如果您还有其他问题,请告诉我。

于 2012-05-11T21:56:04.580 回答