PopupWindow B 显示在 PopupWindow A 中,B的锚点是A中的一个Widget,报异常为:08-01 06:18:18.214: ERROR/AndroidRuntime(888): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRoot$W@44ef1b68 is not valid; is your activity running?麻烦各位大侠们帮我看看咯,谢谢。
解决方案 »
- 调用第二个 activity 设 myView.setText(R.string.hello_world); 出错,高手请进!
- 我在搭建android工作环境时遇到问题了,跪求解答。。各位大神
- 求一个图像缩放方法
- android 怎么挂再mtd分区,
- android下调试报VM错误
- Android中,在桌面上自动创建一个应用程序文件夹(UserFolder)应该怎么写
- 你的android app在运行过程中占用内存多少?
- CloseableHttpClient NoSuchFieldError错误
- Buttton的OnClickListener为什么不能加重写标识@Override??
- 入门学习Retrofit2 碰到重复请求两次的问题
- 求教android安装问题,我安装SDK2.0和1.5都出现这个问题了。
- android 怎么实现通过按钮使当前TextView显示另外一个包里的数组
原因应该是widget只是一个view,它需要有host宿主
测试代码public class TestActivity extends Activity {
private PopupWindow mPop1;
private PopupWindow mPop2; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button btnOpen = (Button) findViewById(R.id.btnOpen);
LayoutInflater inflater = getLayoutInflater();
View content1 = inflater.inflate(R.layout.popup,null);
View content2 = inflater.inflate(R.layout.popup,null);
//PopupWindow里面到按钮
final Button btn1 = (Button) content1.findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
//如果第一个参数为btn1就报错,为btnOpen就不会,但是,要求是使用btn1
mPop2.showAsDropDown(btn1, 20, 40);
}
}); mPop1 = new PopupWindow(content1, 200 , 200);
mPop2 = new PopupWindow(content2, 300, 400);
btnOpen.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "dd",
Toast.LENGTH_SHORT).show();
mPop1.showAsDropDown(btnOpen, 0, 0);
}
}); }
}