setContentView切换页面(无需每次都findViewById)-----二

http://blog.csdn.net/yanzi1225627/article/details/7802402这里是我以前写的总结,这次要用到,可奇怪的是,不管咋弄,从界面A切换到界面B可以,从B到A也可以。再次从A到B死活都不行了。最终的原因在Jum2B 这个函数里,我用了setContentView(R.layout.B)的方法,而不是实例化出来的View BView参数。这里对这个问题,再做一次总结:

假设两个界面A和B,A里有Button为btn1, B里有Button为btn2. 启动时是界面A,然后按按键btn1和btn2可以切换到另外一个界面里。

1,这两个Button要弄成全局变量,如果在onCreate函数里弄成final 应该也行。

2,在全局变量里要定义两个View AView = null, View BView = null, 然后在onCreate里用inflater实例化一下。

3,之后弄两个函数Jump2B, Jump2A,这两个函数里setContentView传进去的参数是上面定义的View参数。两个View 必须都是。然后findViewById的时候,调用(AView).findViewById()这种方法。

4,在onCreate里设置btn1的监听,调用Jump2B方法,在Jump2B方法里,实例化出来btn2, 并设置监听。增加一个flag,只需设置监听一次就可以了。

注意:要点是setContentView传进去的参数是用inflater实例化的View, 在Button 的实例化时调用(AView).findViewById() 。

你可能感兴趣的:(content)