我在我的布局(XML)上声明了一个ImageView,但当我尝试通过ID抓取它时,我得到一个TextField!?!然后我的代码抛出ClassCastException
。
这是我的布局代码(splash.xml
):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
style="@android:style/Theme.Light" android:layout_height="wrap_content" android:background="@drawable/bg">
<ImageView android:layout_height="wrap_content" android:layout_width="match_parent" android:src="@drawable/splash" android:layout_marginTop="20pt" android:id="@+id/splashLogo"></ImageView>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:id="@+id/splashTitle" android:textStyle="bold" android:textSize="@dimen/title_size" android:layout_gravity="center" android:lineSpacingExtra="@dimen/spacer" android:gravity="center"></TextView>
<TextView android:id="@+id/splashCopyleft" android:textSize="@dimen/version_size" android:lineSpacingExtra="@dimen/version_spacing" android:layout_width="wrap_content" android:gravity="center" android:layout_height="wrap_content" android:text="@string/app_version_info" android:layout_gravity="center" android:textColor="@color/version"></TextView>
</LinearLayout>
这是我的Java(活动)代码:
// imports
public class SplashActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
// Grab a ClassCastException here
ImageView logo = (ImageView) findViewById(R.id.splashLogo);
// Never get here :'(
Log.i("GOT", logo.toString());
}
}
答案 0 :(得分:3)
有时Eclipse会移动资源ID。尝试清理项目并重新构建它。
答案 1 :(得分:0)
首先,清理您的项目,然后构建。
如果问题仍然存在,关闭 Eclipse并重新打开。