android - findViewById 返回错误的元素?

标签 android android-layout android-imageview textview findviewbyid

我不明白为什么 findViewById 返回错误的元素,这是类:

public class EventDetailsFragment extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.event_details);
        Log.d("First", findViewById(R.id.tuxtView1).getClass().toString());
        Log.d("Second", findViewById(R.id.tuxtView2).getClass().toString());
        Log.d("Third", findViewById(R.id.imageView1).getClass().toString());
    }   
}

这是 xml:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/green"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">

    <RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="0dp"
    android:layout_height="175dp"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:background="#fff"
    android:gravity="right" >

        <ImageView
        android:id="@+id/imageView1"
        android:layout_width="110dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:src="@drawable/ic_event_image" />

        <TextView
        android:id="@+id/tuxtView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp" />      
        <TextView
        android:id="@+id/tuxtView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tuxtView2"
        android:layout_toRightOf="@+id/imageView1"
        android:textColor="#555"
        android:textSize="20dp" />

    </RelativeLayout>

</LinearLayout>

logcat 输出是:

12-26 23:43:20.249: D/First(6789): class android.widget.TextView
12-26 23:43:20.249: D/Second(6789): class android.widget.ImageView
12-26 23:43:20.249: D/Third(6789): class android.widget.TextView

所以重点是,为什么我得到一个id为R.id.tuxtView2的imageview和一个id为R.id.imageView1的textview。如果我想将文本值分配给 R.id.tuxtView2,并将其转换为 TextView,应用程序会崩溃。

最佳答案

尝试重新加载您的项目,可能是 R.java 有问题,或者验证您是否使用 setContentView 调用正确的文件。

通过刷新/清理您的项目,R.java 文件将被重新加载并找到命名的小部件。

关于android - findViewById 返回错误的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8639667/

相关文章:

Android 自定义布局抛出 android.view.InflateException

android - android.view.WindowManager $ BadTokenException : Unable to add window — token android. os.BinderProxy@27773032无效;您的 Activity 正在进行吗?

android-layout - 如何在屏幕上拉伸(stretch)三张图像并保持纵横比?

android - 如何使用 drawable 将图库图像随机放入编辑文本中

android - 使用android studio时的facebook哈希键

java - 如何在android服务器端禁用tcp_timestamp?

android - 无法解决: com. github.Q42 :AndroidScrollingImageView:1. 3.2错误

android - 覆盖包含的背景属性以更改背景颜色

android - 将形状添加到 LinearLayout Android

android - 使用 KenBurnsView 定义缩放/平移起始位置