DialogFragmentではsetCancelableはフラグメントに対して行う

ダイアログを開いて、少々こみいった処理をする場合、Backキーでダイアログをキャンセルされたくないことが多々あります。
そのような場合、従来の(フラグメントを使わない)方法では、AlertDialogにsetCancelable(false)などとしていました。
DialogFragmentでも同じだろうと、onCreateDialogメソッド内でsetCancelable(false)をして、これで一安心と思っていたら、Backキーでキャンセルできちゃうではありませんか。
こんなコードだとBackキーでキャンセルできちゃう
[java highlight_lines=”7″]
public static class DateErrorDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
dialog.setMessage(“ダイアログです!”);
dialog.setPositiveButton(getString(R.string.OKAnswer), null);
dialog.setCancelable(false);
return dialog.create();
}
}
[/java]
DialogFlagmentの場合、いくらダイアログ本体にsetCancelable(false)をしても効かない様子。正しくは、DialogFlagment#setCancelable(false)としなければいけなようです。
正しくはDialogFlagmentの方にsetCancelable(false)を行う
[java highlight_lines=”2″]
DateErrorDialogFragment dialog = new DateErrorDialogFragment();
dialog.setCancelable(false);
dialog.show(getSupportFragmentManager(), “date_error”);
[/java]
こうすれば、Backキーでダイアログがキャンセルされなくなりました。
元ネタはこちら。
http://stackoverflow.com/questions/10171822/android-how-to-prevent-the-back-button-from-cancelling-a-fragmentdialog

The connection to adb is down, and a severe error has occured.というエラーでAndroidプロジェクトが実行できない時の対処

Eclipseを新規インストールすると、Androidプロジェクトが実行できなくなりました。
The connection to adb is down, and a severe error has occured.
というメッセージが表示され、起動できない。

[2012-11-05 13:10:13 - FirstSample] The connection to adb is down, and a severe error has occured.
[2012-11-05 13:10:13 - FirstSample] You must restart adb and Eclipse.
[2012-11-05 13:10:13 - FirstSample] Please ensure that adb is correctly located at 'C:\android-sdk-windows\platform-tools\adb.exe' and can be executed.

Eclipseをクリーンコマンドで立ち上げるとなおりました。

"C:\eclipse\eclipse.exe -clean.cmd"