2014年4月23日水曜日

【Android、4.x】layout用XMLファイルでの@+の意味

※Android4.0以降で確認してます。それ以前で使えるかは調べてません。

本を写経しててハマった…
知ってる人が見たら当たり前だろって怒られそう。

ソースコード(エラーします)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/userIdLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/passwordLabel"
        android:padding="8dp"
        android:text="User ID" />

    <TextView
        android:id="@+id/passwordLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/userIdLabel"
        android:padding="8dp"
        android:text="Password" />

</RelativeLayout>

エラー内容

No resource found.....
リソースがないぞ。っと。

問題箇所

        android:layout_alignRight="@id/passwordLabel"
正しくは
        android:layout_alignRight="@+id/passwordLabel"
たぶんこれをすると2つ目のTextViewにある+は要らなくなるんだろうな。

まとめ

@+id/hogehoge
とすることでidを定義してるみたいですね。
@id/hogehoge
だと定義せず読み込もうとするのでエラーしてたんではないかと。
@id以外にも@を使った記述はよく見る気がするので近いうちに調べてまとめてみたいと思います。

スポンサーリンク

Related Posts Plugin for WordPress, Blogger...