如题,困扰我一上午了,上代码:
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);就没问题了 。可是事实上毫无用处,测过两个程序都没用,求大神指点
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);就没问题了 。可是事实上毫无用处,测过两个程序都没用,求大神指点
popWindow的setFocusable为flase
然后listview里面的抢占焦点的控件(比如说button,checkbox)的setFocusable也设置为flase,