首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

PopupWindow下加载带ListView控件的窗口,怎么使listview获取点击事件

2013-02-19 
PopupWindow上加载带ListView控件的窗口,如何使listview获取点击事件如题,困扰我一上午了,上代码: public

PopupWindow上加载带ListView控件的窗口,如何使listview获取点击事件
如题,困扰我一上午了,上代码:
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final LinearLayout layout1 = (LinearLayout)findViewById(R.id.linearlayout_1);
    Button bt = (Button)findViewById(R.id.changebtn);
    View pop = getLayoutInflater().inflate(R.layout.pop, null);
    final PopupWindow pp = new PopupWindow(pop, 200, 500);
      lv = (ListView)pop.findViewById(R.id.listt);
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Log.i("list", "clicked");
}
});
    initlist();//用于初始化列表里面的内容
    
    bt.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(pp.isShowing())pp.dismiss();
else pp.showAtLocation(layout1, 0, 0, 0);

pp.setFocusable(true);
pp.setTouchable(true);
pp.setOutsideTouchable(true);
}
});
  

在代码中
pp.setFocusable(true);
pp.setTouchable(true);
pp.setOutsideTouchable(true);
添加其中一个或几个,或全部,无法解决问题。弹出窗口还是无法获取点击事件。而弹出窗口的按钮点击没反应,但是能获取事件,跟网上说的一样。
百度了一遍,都说要setFocusable(true);就没问题了 。可是事实上毫无用处,测过两个程序都没用,求大神指点
    
[解决办法]
小弟之前遇到过类似的问题,可以尝试将ListView重新继承,具体可参看android 2.3源码---AutoCompleteTextView.DropDownListView的实现,主要是让hasWindowFocus、isFocused、hasFocus始终返回true就ok了

[解决办法]
试试
popWindow的setFocusable为flase
然后listview里面的抢占焦点的控件(比如说button,checkbox)的setFocusable也设置为flase,

热点排行
Bad Request.