试试:popupwindow焦点问题解决方案
在android 开发过程中,总会遇到一些问题,比如popupwindow焦点问题等等,我们该如何解决呢?需要的朋友可以了解下
1.问题:创建了一个PopupWindow,里面要显示listView,这样子的话,listView的itemClick要得到实现,必须要让PopupWindow得到焦点,可是PopupWindow得到焦点之后,parentView     的一些onTouch事件就得不到响应,在这个时候应该怎么办? 
2.解决:PopupWindow得到焦点:window.setFocusable(true); 
    也要让除了PopupWindow之外的得到响应需要--window.setBackgroundDrawable(new BitmapDrawable()); 
3.注意:如若还不能实现,上面两句代码换一下先后顺序~~~

解决方案 »

  1.   

        //设置可以获取焦点,否则弹出菜单中的EditText是无法获取输入的
        popWindow.setFocusable(true);
        //这句是为了防止弹出菜单获取焦点之后,点击activity的其他组件没有响应
        popWindow.setBackgroundDrawable(new BitmapDrawable()); 
      

  2.   

    额   我的EditText不是弹出来的popupwindow中的,是本来就存在在Activity上的,是在EditText中有输入以后弹出来的popupwindow.............这时候EditText没有焦点就得不到输入
      

  3.   

    上面的popupwindow只是个例子,你到popupWindow是ListView而已。
    EditText没有焦点肯定是无法输入的。
    焦点在EditText上时,点击PopupWindow上的ListView的item时怎么会没有反应?
    就好比有两个button A和B,此时焦点在A上,但是B还是可以点击的啊。
      

  4.   

    有反应,selector产生了反应,也就是说选中和未选中的背景色不同,但是没有触发监听器...........
    我现在手头没代码,明天发给你一份  你可以看看
      

  5.   

    设置popupwindow得到焦点,这时候的下拉列表是可以点击的。
    你可以截获popupwindow的消息,获取输入的内容把数据反映到EDIT控件上,毕竟是两个控制,没有两个焦点的说法,不过可以模拟效果来实现。
      

  6.   

    我就是在模仿AutoCompleteTextView
    主要是因为AutoCompleteTextView在各个版本上的UI都不一样
    所以做一个一样效果的
      

  7.   

    不如用SurfaceView。。无所不能。。
      

  8.   

    http://pan.baidu.com/s/1qWKyfgS
    这是我上传的工程,你可以看一下
      

  9.   

    设置popupwindow得到焦点,这时候的下拉列表是可以点击的。
    你可以截获popupwindow的消息,获取输入的内容把数据反映到EDIT控件上,毕竟是两个控制,没有两个焦点的说法,不过可以模拟效果来实现。

    http://pan.baidu.com/s/1qWKyfgS
    工程文件我发上来了,大神可以帮忙看一下吗?
      

  10.   

    我现在在做仿4.0的AutoCompleteTextView的控件
      

  11.   

    我要的是和系统的一样
    能一边输入,同时根据输入的内容匹配相近的item到popupwindow上的listview上
    你有没有类似的东西  就搭救
      

  12.   

    LZ是没有设置匹配规则吧?推荐下一篇好文章http://blog.csdn.net/illidantao/article/details/9472409
      

  13.   

    大神来了!!!!!今天下午碰到与你一样的问题,查看了下PopupWindow的源码结果还是没有解决;后来查看了http://blog.csdn.net/illidantao/article/details/9472409这个博客重写的EditText来搞定;确实是解决了,但是没有用到popupwindow;但是我还是坚持想用原来这个方案灵感突然爆发用了个最简单的方式解决了如下:popupwindow里面初始化listView,listView 设置setAdapterprivate class MyAdapter extends BaseAdapter { @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return listBean == null ? 0 : listBean.size();
    } @Override
    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
    }
    @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
    } @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View v = LayoutInflater.from(AddPatientX.this).inflate(
    R.layout.auto_text_item, null);
    TextView tv1 = (TextView) v.findViewById(R.id.tv1);
    tv1.setText(listBean.get(position).getFname());



    v.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    System.out.println("xxxxxxxxxxxxxxxx");
    }
    });

    return v;
    } }在adpter的getView里面可以监听到listView的每个itemView的点击事件,说明了listView的每个item是能被点击的,但是这个点击事件没有再传给listView从而去调用OnItemClickListener这个监听器;具体原因还要超级牛神来解决了
      

  14.   

    下面直接用个Listview不可以吗,为啥需要pop啦
      

  15.   

    autocompletetextview只能自动匹配前面相同的字,不能匹配中间或者后面相同的字,比如检索a,不能搜索出来cac,只能是a,abc...