如题,困扰我一上午了,上代码:
 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);就没问题了 。可是事实上毫无用处,测过两个程序都没用,求大神指点
    

解决方案 »

  1.   

    小弟之前遇到过类似的问题,可以尝试将ListView重新继承,具体可参看android 2.3源码---AutoCompleteTextView.DropDownListView的实现,主要是让hasWindowFocus、isFocused、hasFocus始终返回true就ok了
      

  2.   

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

  3.   

    知道问题, 需要UPDATE以下,或者setFocusable  写在show之前!