2013-04-20 24 views
2

突然间,真的没事了我开始对我的RelativeLayout有问题。问题是,它不想识别在此RelativeLayout中使用ID定义的其他视图: 错误消息(在行android:layout_alignBaseline =“@ id/editText3”)是:错误:找不到资源与给定名称匹配(在'layout_alignBaseline',值为'@ id/editText3')。Android:XML无法通过编号找到其他视图

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" > 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@id/editText3" 
     android:text="Predaj: " 
     android:textSize="25dp" /> 

    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/textView3" 
     android:inputType="numberDecimal" 
     android:singleLine="true" 
     android:textSize="25dp" 
     android:textStyle="bold" 
     android:editable="false" 
     android:textIsSelectable="true" /> 
</RelativeLayout> 

我不明白什么似乎是问题 - 我试过清洗,改造,重新启动电脑,删除并重新创建整个文件(R.java也一样),但错误只是止跌”不要走开。当我删除这行代码时,一切正常(除了对齐)。我有一种感觉,那是因为“textView3”是在“editText3”之前定义的,但在过去的几天里它是这样工作的。 感谢您的咨询 - 非常感谢

回答

3

感谢Francesco Gatto。它确实有助于在TextView中为EditText创建变量,所以现在的代码看起来非常相似,但实际上起作用。

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" > 



    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/editText1" 
     android:text="Cena: " 
     android:textSize="25dp" /> 

    <EditText 
     android:id="@id/editText1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/textView1" 
     android:inputType="numberDecimal" 
     android:singleLine="true" 
     android:textSize="25dp" 
     android:textStyle="bold" /> 

</RelativeLayout> 

所以我分配layout_alignBaseline =“@ + ID/EDITTEXT”时创建的变量的EditText已经然后在我的EditText用相同的ID(不要再创建它)。

1

您是否尝试清洁项目?

或者尝试写+ @ ID在alignbaseline

+1

@ alignBaseline中的@ + id真的有窍门。非常感谢。只要系统允许,我会尽快分享详细的答案(评分过低)。 – user2302510 2013-04-21 00:47:02

+0

你好!干得好! – Frank 2013-04-21 09:43:13

0

参考其声明之后,看看是否能平静的错误。在你宣布之前,你也要提到事物。看起来你需要一些可视化文本,然后是一个盒子,这样用户就可以在textview的右侧编辑文本。在RelativeLayouts中,让第一个视图自动放置,或者您可以将其与父对象放在一起。即。 (android:layout_alignParentLeft)。在RelativeLayouts中,我们使用firstview作为我们的起始参考点,然后是父容器。我调整了你的代码,请告知它是否合理:

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" > 



    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:inputType="numberDecimal" 
     android:singleLine="true" 
     android:textSize="25dp" 
     android:textStyle="bold" 
     android:editable="false" 
     android:textIsSelectable="true" /> 


<TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/editText3" 
     android:layout_alignBaseline="@id/editText3" 
     android:text="Predaj: " 
     android:textSize="25dp" /> 

</RelativeLayout> 
+0

我试过了,但然后同样的错误发生在行android:layout_toRightOf =“@ id/textView1”在EditText – user2302510 2013-04-21 00:21:54

+0

我编辑我的回应 – j2emanue 2013-04-21 00:53:46

0

我知道它已经晚了,但它可能会帮助有同样问题的人。

EditText放在TextView之上。它不会影响你在做什么,因为它是一个RelativeLayout

会发生什么呢?简而言之,Gradle会扫描代码的每一行,并且由于它没有找到已经提到的ID,所以会显示错误。

以前的答案也是正确的,但实现起来要简单得多。