Android:layout_toLeftOf~找不到资源

时间:2015-06-09 13:22:10

标签: android android-xml

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView
        android:id="@+id/pickerDialog_title"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:gravity="left|center_horizontal"
        android:text="HELLO WORLD!!" />
    <NumberPicker
        android:id="@+id/pickerDialog_selector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/pickerDialog_title" />
    <Button
        android:id="@+id/pickerDialog_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/pickerDialog_selector"
        android:layout_toLeftOf="@id/pickerDialog_set" //Cannot find @id/pickerDialog_set
        android:gravity="center"
        android:text="Cancel" />
    <Button
        android:id="@+id/pickerDialog_set" //Here it is
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/pickerDialog_selector"
        android:layout_toRightOf="@id/pickerDialog_cancel"
        android:gravity="center"
        android:text="Set" />
</merge> 

No resource found that matches the given name (at layout_toLeftOf with value @id/pickerDialog_set

据我了解,android:id应该加上@+id/作为前缀,并引用作为@id/

前缀的视图

我如何正确引用ID?

3 个答案:

答案 0 :(得分:4)

您应该更改按钮的顺序toLeftOf the one one button,因为在创建之前不能使用id。您的代码应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView
        android:id="@+id/pickerDialog_title"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:gravity="left|center_horizontal"
        android:text="HELLO WORLD!!" />
    <NumberPicker
        android:id="@+id/pickerDialog_selector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/pickerDialog_title" />
    <Button
        android:id="@+id/pickerDialog_set" //Here it is
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/pickerDialog_selector"
        android:gravity="center"
        android:text="Set" />
    <Button
        android:id="@+id/pickerDialog_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/pickerDialog_selector"
        android:layout_toLeftOf="@id/pickerDialog_set" 
        android:gravity="center"
        android:text="Cancel" />
 </merge> 

并删除android:layout_toRightOf按钮的pickerDialog_set,就像我在上面的代码中所做的那样

答案 1 :(得分:0)

试试这个android:layout_toLeftOf="@+id/pickerDialog_set"

答案 2 :(得分:-1)

在布局中首次添加ID时,必须添加“+”符号(从上到下)。 所以这应该可以解决问题:

android:layout_toLeftOf="@+id/pickerDialog_set"