我有两个活动,activity1开始activity2。 在活动2我注册的OnFocusChangeListener到AutoCompleteTextView:在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方法(通过评论它们)。 我也尝试直接在Activity的View对象(而不是通过侦听器传递的对象)上执行这两个方法,并得到相同的异常。
我做错了什么?
你知道,当屏幕旋转时,即*默认*您现有的活动被破坏并产生一个新的来代替它? –
是的,但我仍然不明白我想要做什么错。我很新的Android开发.. –
你能解释这个代码有什么问题吗?在配置更改时,活动被破坏并创建一个新活动,然后创建一个新活动并注册一个新的监听器。 –