欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

popupwindow 中加listview,点击item时popupwindow不消失的有关问题?

更新时间: 2014-05-15 04:48:28 责任编辑: Author_N3

 

popupwindow 中加listview,点击item时popupwindow不消失的问题??
我实现了一个PopupWindow+listview自定义的下拉列表,但是当点击item之后,l列表收不回去是怎么回事, 

public void afterTextChanged(Editable e) { 
        String term = e.toString(); 
        Log.d("term", term); 
        if (e != null && !term.equals("")) { 
         mohu_findrules = lawDao.mohu_findrules(term); 
         if (mohu_findrules.size() > 0) { 
          termlist = new ListView( 
            LawMainActivity.this);//创建listview 
          fuzzyQueryAdapter = new FuzzyQueryAdapter( 
            LawMainActivity.this, 
            mohu_findrules);//这是加载数据的adapter 
          PopUtil.createpop(termlist, 
            fuzzyQueryAdapter, lm_et, -10);//调用创建popwindow 
          termlist.setOnItemClickListener(new OnItemClickListener() { 
           @Override 
           public void onItemClick( 
             AdapterView<?> parent, 
             View view, int position, long id) { 
            String termname = (String) parent 
              .getItemAtPosition(position); 
            lm_et.setText(termname); 
            PopUtil.closepop();//相应item的时候popwindow消失。但是消失不了, 
           } 
          }); 
         } 
        } 
       } 



下面是PopUtil类, 

public static void createpop(ListView lv,ListAdapter adapter,View v,int n){ 
   lv.setCacheColorHint(0x00000000);// 缓冲色 设置透明色 
   lv.setVerticalScrollBarEnabled(false); 
   lv.setDivider(null);// 取消item分割线 
   lv.setAdapter(adapter); 
   
   pop=new PopupWindow(lv, v.getWidth(), LayoutParams.WRAP_CONTENT, true); 
   pop.setBackgroundDrawable(new ColorDrawable(0x33000000)); 
   pop.showAsDropDown(v, 0, n); 
   

public static void closepop(){ 
   pop.dismiss(); 


我整个项目都是用的这一个类,所有的都可以弹回去,唯独这一个收不回去,谁知道怎么回事,指点一下,谢谢各位。  分享到:
--参考方法--
最好不要写成静态的,有可能是这个原因引起的。
--参考方法--
public static void createpop(ListView lv,ListAdapter adapter,View v,int n){ 
    lv.setCacheColorHint(0x00000000);// 缓冲色 设置透明色 
    lv.setVerticalScrollBarEnabled(false); 
    lv.setDivider(null);// 取消item分割线 
    lv.setAdapter(adapter); 
    
    pop=new PopupWindow(lv, v.getWidth(), LayoutParams.WRAP_CONTENT, true); 
    pop.setBackgroundDrawable(new ColorDrawable(0x33000000)); 
    pop.showAsDropDown(v, 0, n); 
    //这里需要update下

pop.update();
 } 
--参考方法--
可以在 
lm_et.setText(termname); 
lm_et.clearFocus();//加上这个试试
PopUtil.closepop();
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-05-15 04:48:28
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/362331/
本文WWW.DOC100.NET DOC100.NET版权所有。