【问题标题】:Autocomplete TextView in PopupWindow在 PopupWindow 中自动完成 TextView
【发布时间】:2015-01-20 12:36:09
【问题描述】:

我在按钮点击时显示 PopupWindow。

public void Search_Click(View view) {
    try 
    {
      Display display=getWindowManager().getDefaultDisplay();
      LayoutInflater inflater = (LayoutInflater) IssueTokenActivity.this
                                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      View layout = inflater.inflate(R.layout.activity_pop_up_transporter_details,
                        (ViewGroup) findViewById(R.id.popup_element));
      AutoCompleteTextView act=(AutoCompleteTextView)layout.findViewById(R.id.act_trans_name);
        ArrayAdapter<String> dataadapter=new ArrayAdapter<String>(view.getContext(), android.R.layout.simple_dropdown_item_1line,list);
        dataadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        act.setAdapter(dataadapter);
        act.setThreshold(1);

        //TODO: Need to support for higher API
        pwindo = new PopupWindow(layout,display.getWidth()-60, display.getHeight()-400, true);
        pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);

        btnClosePopup = (Button) layout.findViewById(R.id.btn_close_popup);
        btnClosePopup.setOnClickListener(cancel_button_click_listener);

    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

但我在输入 AutoCompleted TextView 时遇到此错误。

06-20 09:15:47.091: E/AndroidRuntime(23277): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@40ece840 is not valid; is your activity running?
06-20 09:15:47.091: E/AndroidRuntime(23277):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:567)
06-20 09:15:47.091: E/AndroidRuntime(23277):    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
06-20 09:15:47.091: E/AndroidRuntime(23277):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
06-20 09:15:47.091: E/AndroidRuntime(23277):    at android.widget.PopupWindow.invokePopup(PopupWindow.java:993)
06-20 09:15:47.091: E/AndroidRuntime(23277):    at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:899)
06-20 09:15:47.091: E/AndroidRuntime(23277):    at android.widget.ListPopupWindow.show(ListPopupWindow.java:603)

【问题讨论】:

  • 不要膨胀布局文件并将其添加到R.id.popup_element ViewGroup,然后将该膨胀布局添加为PopupWindow 的内容。
  • 谢谢,你能提供更多细节吗?
  • 开始使用View layout = inflater.inflate(R.layout.activity_pop_up_transporter_details, null);,看看错误是否消失。
  • 没有出现同样的错误
  • 您似乎无法从PopupWindow 中显示另一个PopupWindow,而这正是AutoCompleTextView 所做的。见stackoverflow.com/questions/11932578/…

标签: android autocompletetextview


【解决方案1】:

最好使用对话框(android.app.Dialog)来实现 AutoCompleteTextView。我认为不可能在 PopupWindow 中添加 AutoCompleteTextView(你会得到异常)。你可以在 Popupwindow 中添加 Spinner。如果正在使用,你可以同时实现对话框而不是弹出窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2014-01-02
    • 2012-08-09
    • 2015-02-02
    • 2012-03-28
    • 2011-12-30
    相关资源
    最近更新 更多