0

Eclipse経由のAndroid2.1

チェックボックスonChecked関数を介してダイアログをテーマにしたアクティビティを開くアクティビティがあります

インテントを使用して、この新しいダイアログをテーマにしたアクティビティを作成しています。

問題は、ダイアログをテーマにしたアクティビティを終了したら、どうすればそれを閉じることができるかということです。(現在の状況では、ボタンをクリックして前のアクティビティに戻るには、新しいインテントを送信する必要があります)

どんな助けでも大いに感謝されるでしょう!

コードスニペット:

主な活動:

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 に答える