私は2つのアクティビティを持っていますが、activity1はactivity2を開始しています。 は、アクティビティ2で私がAutoCompleteTextViewにOnFocusChangeListenerを登録:AutoCompleteTextViewでのBadTokenExceptionリスナー内のshowDropDown()
someTextView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus)
((AutoCompleteTextView)v).showDropDown();
else
((AutoCompleteTextView)v).dismissDropDown();
}
});
私はTextViewの中に何かを書くと、その後の活動の設定変更(画面回転)場合、私はWindowManager.BadTokenExceptionを取得します。 これを、showDropDownメソッドとdismissDropdownメソッドに(コメントで)分離しました。 私はまた、2つのメソッドを(リスナを通して渡されるものではなく)ActivityのViewオブジェクト上で直接実行しようとしましたが、同じ例外がありました。
何が間違っていますか?
あなたは、画面が回転するとき、それは*デフォルト*既存の活動が破壊され、新しいものがそれを置き換えるために作成したことを知っていますか? –
はい、でも私は何をしようとしているのが間違っているのか分かりません。私はかなりAndroid開発に新しいです。 –
このコードの問題点を教えてください。コンフィグレーションの変更時にアクティビティが破棄され、新しいアクティビティが作成された後、新しいアクティビティが作成され、新しいリスナが登録されます。 –