ImageView xml作为TextView返回

时间:2011-05-25 05:37:50

标签: android xml android-layout

我在我的布局(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());
    }
}

2 个答案:

答案 0 :(得分:3)

有时Eclipse会移动资源ID。尝试清理项目并重新构建它。

答案 1 :(得分:0)

首先,清理您的项目,然后构建

如果问题仍然存在,关闭 Eclipse并重新打开