我无法过滤listview ,它位于Popupwindow中。
失败并出现异常
android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@150769 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:1378)
at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1154)
at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1121)
at android.widget.AbsListView.positionPopup(AbsListView.java:5665)
at android.widget.AbsListView.showPopup(AbsListView.java:5651)
at android.widget.AbsListView.onTextChanged(AbsListView.java:6095)
at android.widget.TextView.sendOnTextChanged(TextView.java:8187)
at android.widget.TextView.setText(TextView.java:4483)
at android.widget.TextView.setText(TextView.java:4337)
at android.widget.EditText.setText(EditText.java:89)
at android.widget.TextView.setText(TextView.java:4312)
at android.widget.AbsListView.setFilterText(AbsListView.java:1944)
我将PopupWindow显示为:
popupWindow.showAtLocation(getWindow().getDecorView(), Gravity.CENTER, 0, 0);
弹出布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:hint="" />
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</RelativeLayout>
你能提供指示吗?
答案 0 :(得分:0)
我认为问题是你显示你的弹出窗口显示得太早了。在runnable中使用showatlocation,如下所示
new Handler().postDelayed(new Runnable(){
public void run() {
pwindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
}
}, 100L);