最近接触了安卓开发,今天遇到一个问题,就是有两个控件,一个TextView tv1,一个WebView wv1,本来wv1在tv1的上面程序可以正常跑起来的。
后来我把xml文件当中的两个控件换了下位置,把tv1放在了wv1的上面,结果跑起来出错,说是TextView对象不能被转换成WebView对象,我看了下,代码中涉及到转换成WebView对象的代码只有一处:
WebView wv = (WebView)findViewById(R.id.wv1);
很明显这个地方后面取错了对象,取了个TextView对象所以会出错,我想想这些对象和其id对应关系都是保存在R.java文件里的,所以我打开R.java,发现有两句是这样的:
public static final int tv1=0x7f080003;
public static final int wv1=0x7f080002;
我想了下可能是在调换两个对象的时候,R.java没有自动调换两个控件,于是手动修改成:
public static final int tv1=0x7f080002;
public static final int wv1=0x7f080003;
再跑起来发现就正常啦~~
-------------9月24日更新-----------
直接删除掉R.java文件,让它重新自动生成也可以。