2013-04-20 6 views
2

вдруг, действительно из ничего, у меня возникла проблема с моим RelativeLayout. Проблема заключается в том, что он не хочет распознавать другое представление, которое находится в этом RelativeLayout, определенном с идентификаторами: Сообщение об ошибке (в строке android: layout_alignBaseline = "@ id/editText3"): Ошибка: ресурс не найден который соответствует указанному имени (в 'layout_alignBaseline' со значением '@ id/editText3').Android: XML не может найти другие мнения по id

<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, а), но ошибка просто Wouldn» не уходи. Когда я удаляю эту строку кода, все работает отлично (кроме выравнивания). Я чувствую, что это потому, что «textView3» определен до «editText3», но он работал так вот в течение последних нескольких дней. Спасибо за совет - очень оценили

ответ

3

Благодаря Франческо Гатто. Это действительно помогло создать переменную для EditText уже в TextView, поэтому код теперь выглядит очень похожим, но на самом деле работает.

<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> 

Таким образом, я создал переменную EditText уже при назначении layout_alignBaseline = «@ + идентификатор/EditText», а затем в EditText я использовал тот же идентификатор (не создавая его снова).

1

Вы пытались очистить проект?

Или попробуйте написать + @ идентификатор в alignbaseline

+1

@ + id в alignBaseline действительно сделал трюк. Большое спасибо. Я расскажу подробный ответ, как только мне будет позволено система (слишком низкий рейтинг). – user2302510

+0

Вы хорошо! Хорошая работа! – Frank

0

ссылаться на него после того, как вы объявите его и посмотреть, если это успокаивает ошибку. Также вы ссылаетесь на вещи, прежде чем их объявят. Кажется, вам нужен какой-то визуальный текст, а затем ящик, чтобы пользователь мог редактировать текст справа от текстового поля. В RelativeLayouts просто пусть сама первая точка зрения выйдет автоматически или вы можете раскрыть ее с уважением к родителям. то есть. (android: layout_alignParentLeft). В RelativeLayouts первое представление мы используем в качестве нашей исходной контрольной точки, кроме родительского контейнера. Я скорректировал ваш код, пожалуйста, сообщите, если это имеет смысл:

<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

+0

я отредактировал свой ответ – j2emanue

0

Я знаю, что было уже поздно, но это может помочь кому-то с той же проблемой.

Место EditText над TextView. Это не повлияет на внешний вид того, что вы делаете, потому что это RelativeLayout.

Что происходит, так это то, что Gradle сканирует каждую строку вашего кода и, поскольку он не находит идентификатор, который уже упоминался, отображается ошибка.

Предыдущие ответы также верны, но это намного проще реализовать.

Смежные вопросы