更改布局xml不更改内容,仅更改布局

时间:2014-03-08 19:04:41

标签: android android-layout

我不知道该怎么称呼这个问题,至少可以说,我所经历的有点奇怪。

我的布局包含以下部分

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/activityProjectView_projectName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Project name"
            android:textAppearance="?android:attr/textAppearanceLarge" />
        <TextView
            android:id="@+id/activityProjectView_projectDueDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Project Due Date"
            android:textAppearance="?android:attr/textAppearanceSmall" /> 
</LinearLayout>

<TextView
        android:id="@+id/activityProjectView_projectDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Project Description"
        android:textAppearance="?android:attr/textAppearanceMedium" />

在我的代码中,我将变量分配到这些TextView元素中,如下所示

TextView projectName = (TextView) this.findViewById(R.id.activityProjectView_projectName);
        TextView projectDesc = (TextView)
        this.findViewById(R.id.activityProjectView_projectDescription);
        TextView projectDueDate = (TextView) 
        this.findViewById(R.id.activityProjectView_projectDueDate);

        projectName.setText(project.getName());
        projectDesc.setText(project.getDescription());
        projectDueDate.setText(Util.DATE_SHORT_UI.format(project.getDueDate()));

项目获取者返回的数据是正确的。加载视图时,将使用描述填充小文本视图,而不是日期,中间文本视图将填充日期而不是描述。

我认为这是奇怪的,因为视图是正确的,并且代码看起来是正确的。此时我切换了布局,以便日期元素如下所示:

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/activityProjectView_projectName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Project name"
            android:textAppearance="?android:attr/textAppearanceLarge" />
        <TextView
            android:id="@+id/activityProjectView_projectDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Project Description"
            android:textAppearance="?android:attr/textAppearanceMedium" /> 
</LinearLayout>

<TextView
            android:id="@+id/activityProjectView_projectDueDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Project Due Date"
            android:textAppearance="?android:attr/textAppearanceSmall" />

我希望这可以转换数据(显示我的代码中有某种错误,或者在某处错误分配)。我错了。数据完全保留在以前的位置。

我的意思是日期现在显示在另一个textview中,并且描述相同。所以现在即使我将文本视图转换为圆形,日期现在位于中等文本视图中而不是小文本视图,并且描述也已切换。奇怪的是,视图肯定会更新,因为我看到中小文本视图移动位置,但数据也以某种方式切换。

发生了什么事?无论我对布局文件做了什么,我都可以自己改变样式和元素的位置,但数据总是以某种方式找到一种在错误的文本视图中显示自己的方法。

1 个答案:

答案 0 :(得分:1)

显然这个问题是由一个损坏的R.java文件引起的,该文件的引用指向了错误的视图。干净的重建解决了这个问题。