2017-01-20 16 views
0

カスタマイズされたレイアウト要素でListViewを作成したいとします。私はインターネットからサンプルレイアウトを見つけました。しかし、私はそれを私のアプリに追加すると、すべてが破壊されます。私は、リソースがそれが(「ID/textViewCapital @」 値に「layout_above」で)指定された名前と一致していないカスタムレイアウトファイルが私のAndroidアプリケーションを破壊する(値のある 'layout_above'にある、指定された名前に一致するリソースが見つかりません)

のように、いくつかのエラーを取得します。

':app:processDebugResources'タスクの実行に失敗しました。 com.android.ide.common.process.ProcessException:

AAPTの実行に失敗しましたがここで記号R

を解決できませんが、私のレイアウトファイルのコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="6dp"> 

    <ImageView 
     android:id="@+id/imageViewFlag" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginEnd="6dp" 
     android:layout_marginRight="6dp"/> 

    <TextView 
     android:id="@+id/textViewName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/textViewCapital" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_toEndOf="@id/imageViewFlag" 
     android:layout_toRightOf="@id/imageViewFlag" 
     android:gravity="center_vertical" 
     android:text="Country Name" 
     android:textSize="16sp" 
     tools:ignore="HardcodedText" /> 

    <TextView 
     android:id="@+id/textViewCapital" 
     android:layout_width="fill_parent" 
     android:layout_height="26dip" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_toEndOf="@id/imageViewFlag" 
     android:layout_toRightOf="@id/imageViewFlag" 
     android:ellipsize="marquee" 
     android:maxLines="1" 
     android:text="Country Capital" 
     android:textSize="12sp" 
     tools:ignore="HardcodedText" /> 

</RelativeLayout> 

私が何であるかを理解しませんこのコードは間違っています。私はAndroid開発の初心者です。あなたはそれを定義する前に使用しているidについては

答えて

1
android:layout_above="@+id/textViewCapital" 

、あなたのコンポーネントがidは、まだ定義されていないことを知らないので、+記号を追加する必要があります。

+1

Hmmm ...正解に投票してください。奇妙な。 –

+0

非常に速い答えに感謝しました。それは私が多くのチュートリアルを読んで、多くのビデオを見たことがあるが、このルールを言及した人に会ったことがないというのは奇妙なことです。 – saidfagan

+0

別の奇妙なことに、Android Studioのこの単純な問題から非常に多くのエラーが発生しています。 – saidfagan

0

これを追加してください: アンドロイド:layout_aboveを= "@ + ID/textViewCapital"

の代わりに: アンドロイド:layout_above = "@ idが/ textViewCapital"

0

...これを試してみてください

リソースIDは、リソースを使用する前に作成する必要があります。上記のようにtextViewNameのtextViewCapitalリソースを使用しています。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="6dp"> 

<ImageView 
    android:id="@+id/imageViewFlag" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginEnd="6dp" 
    android:layout_marginRight="6dp"/> 

<TextView 
    android:id="@+id/textViewCapital" 
    android:layout_width="fill_parent" 
    android:layout_height="26dip" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_toEndOf="@+id/imageViewFlag" 
    android:layout_toRightOf="@+id/imageViewFlag" 
    android:ellipsize="marquee" 
    android:maxLines="1" 
    android:text="Country Capital" 
    android:textSize="12sp" 
    tools:ignore="HardcodedText" /> 

<TextView 
    android:id="@+id/textViewName" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textViewCapital" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignWithParentIfMissing="true" 
    android:layout_toEndOf="@+id/imageViewFlag" 
    android:layout_toRightOf="@+id/imageViewFlag" 
    android:gravity="center_vertical" 
    android:text="Country Name" 
    android:textSize="16sp" 
    tools:ignore="HardcodedText" /> 


</RelativeLayout> 

ホープこれはあなたを助けます。

0

理由は、あなたが作成した

<TextView 
    android:id="@+id/textViewName" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@id/textViewCapital" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignWithParentIfMissing="true" 
    android:layout_toEndOf="@id/imageViewFlag" 
    android:layout_toRightOf="@id/imageViewFlag" 
    android:gravity="center_vertical" 
    android:text="Country Name" 
    android:textSize="16sp" 
    tools:ignore="HardcodedText" /> 

はそれがすべての問題

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="6dp"> 

    <ImageView 
     android:id="@+id/imageViewFlag" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginEnd="6dp" 
     android:layout_marginRight="6dp" /> 

    <TextView 
     android:id="@+id/textViewCapital" 
     android:layout_width="fill_parent" 
     android:layout_height="26dip" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_toEndOf="@id/imageViewFlag" 
     android:layout_toRightOf="@id/imageViewFlag" 
     android:ellipsize="marquee" 
     android:maxLines="1" 
     android:text="Country Capital" 
     android:textSize="12sp" 
     tools:ignore="HardcodedText" /> 

    <TextView 
     android:id="@+id/textViewName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/textViewCapital" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_toEndOf="@id/imageViewFlag" 
     android:layout_toRightOf="@id/imageViewFlag" 
     android:gravity="center_vertical" 
     android:text="Country Name" 
     android:textSize="16sp" 
     tools:ignore="HardcodedText" /> 

</RelativeLayout> 

を持っていません

がダウンして、それを入れてみてください、その時点に作成されていないことを以下でありますまたは、その時点でビューが作成されないので、android:layout_above="@+id/textViewCapital"を入れてみると、後で作成されるidを使用することができます。

関連する問題