Android 在PopupWindow中长按编辑文本不会显示系统编辑对话框

Android 在PopupWindow中长按编辑文本不会显示系统编辑对话框,android,android-edittext,popupwindow,Android,Android Edittext,Popupwindow,可能重复: 在我问这个问题之前,我已经花了几个小时搜索并尝试了不同的方法,但运气不佳,这完全是同一个问题,没有回答,我不打算重复这个问题,但我感到震惊的是,这个问题没有得到解决并记录在SO中,因为这个要求非常普遍 这个问题是100%可重复的,只需创建一个带有包含EditText的布局的弹出窗口,然后长按EditText,系统编辑对话框就不会出现,因为它的显示方式,我知道它是一个对话框。我不确定这是bug还是有一些开关需要打开,以使EditText在弹出窗口中正常工作 在layout/popup

可能重复:

在我问这个问题之前,我已经花了几个小时搜索并尝试了不同的方法,但运气不佳,这完全是同一个问题,没有回答,我不打算重复这个问题,但我感到震惊的是,这个问题没有得到解决并记录在SO中,因为这个要求非常普遍

这个问题是100%可重复的,只需创建一个带有包含EditText的布局的弹出窗口,然后长按EditText,系统编辑对话框就不会出现,因为它的显示方式,我知道它是一个对话框。我不确定这是bug还是有一些开关需要打开,以使EditText在弹出窗口中正常工作

layout/popupwindow.xml
中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="#ffffff" >

    <EditText android:id="@+id/etText" android:layout_width="fill_parent" android:layout_height="wrap_content" />

</LinearLayout>

有什么想法吗?

我放弃使用PopupWindow,改用Dialog,经过一些测试,我发现Dialog远比PopupWindow好,PopupWindow有很多问题:

  • PopupWindow中的WebView对某些Android版本的长按没有响应,如果响应,则会崩溃。这不是WebView问题,而是PopupWindow问题
  • 当PopupWindow和键盘第一次显示时,PopupWindow中的EditText将缩小其高度,然后扩展到其原始高度
  • PopupWindow中的WebView加载包含文本输入的页面,如果文本输入具有焦点,则无法截取BACK键
  • 许多其他人

  • 现在我使用Dialog作为WebView的容器,所有提到的问题都消失了,只是还有一个小问题需要解决。在ICS上,当显示一个对话框时,我按HOME键,然后返回到应用程序,对话框是隐藏的,我不能用
    dialog.show()
    返回对话框,除此之外,一切正常。我发誓我再也不会使用Poppuphindow了,Poppuphindow真烂

    我放弃使用PopupWindow,改用Dialog,经过一些测试,我发现Dialog远比PopupWindow好,PopupWindow有很多问题:

  • PopupWindow中的WebView对某些Android版本的长按没有响应,如果响应,则会崩溃。这不是WebView问题,而是PopupWindow问题
  • 当PopupWindow和键盘第一次显示时,PopupWindow中的EditText将缩小其高度,然后扩展到其原始高度
  • PopupWindow中的WebView加载包含文本输入的页面,如果文本输入具有焦点,则无法截取BACK键
  • 许多其他人

  • 现在我使用Dialog作为WebView的容器,所有提到的问题都消失了,只是还有一个小问题需要解决。在ICS上,当显示一个对话框时,我按HOME键,然后返回到应用程序,对话框是隐藏的,我不能用
    dialog.show()
    返回对话框,除此之外,一切正常。我发誓我再也不会使用Poppuphindow了,Poppuphindow真烂

    我已经添加了相关的代码。你把代码放在哪里了?进入onCreate?我在单击按钮后显示弹出窗口,因此我将代码放入
    OnClickListener.onClick()
    。您可以在我的回答中尝试代码吗?您可以添加代码以便我可以帮助我添加相关代码。您将代码放在哪里?进入onCreate?我在单击按钮后显示弹出窗口,因此我将代码放入
    OnClickListener.onClick()
    。您能在我的回答中尝试代码吗
    PopupWindow pw = new PopupWindow(getLayoutInflater().inflate(R.layout.popupwindow, null), ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, true);
    pw.setFocusable(true);
    pw.setBackgroundDrawable(new BitmapDrawable());
    pw.showAtLocation(getWindow().getDecorView(), Gravity.CENTER, 0, 0);