2013-04-20 64 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,所以會顯示錯誤。

以前的答案也是正確的,但實現起來要簡單得多。