2017-10-08 3 views
0

メインページのレイアウトを作成しました。そのページでは、いくつかのセクションを分けるためにいくつかの行を使いました。この線はすべて同じ太さなので、より簡単な方法で使用して変更できる整数でresファイルを作成することにしました。問題は、私が使用している場合、私のプログラムは読み込まれません。ここでAndroid:xmlリソースからレイアウトファイルへの整数

は動作するコードです:ここでは

<View 
     android:layout_width="fill_parent" 
     android:layout_height="3dp" 
     android:background="#C0C0C0" /> 

はRESファイルを使用してコードである:(ロードされません)

<View 
     android:layout_width="fill_parent" 
     android:layout_height="@string/line_thickness" 
     android:background="#C0C0C0" /> 

ここでRESファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <integer name="layout_line">3</integer> //Integer used for xml 
    <string name="line_thickness">3dp</string> // string used for xml 
</resources> 

私はいくつかの異なる方法でresファイルを使ってみました。まず、整数と一緒に使ってみました。それはまったく機能しませんでしたし、アプリをロードすることさえできませんでした。文字列を使用すると、アプリケーションの読み込みを許可しましたが、起動時にクラッシュします。

私はここで間違っていますか? Androidでは、これらのresファイルの使用方法を示していますが、この場合は動作しないようです。

+1

「strings.xml」ではなく「dimens.xml」を使用してください。 –

答えて

1

android:layout_heightは整数ではありません。ディメンション値またはディメンションリソースIDが必要です。

変更:

<dimen name="line_thickness">3dp</dimen> 

やレイアウトの@dimen/line_thicknessとしてそれを参照してください。

<string name="line_thickness">3dp</string> 

へ。

+1

私はこれを自分で捕まえるために何ができましたか? – Funlamb

+0

@Funlamb:これらのリソースを適用しようとすると、レイアウトエディタでIDEに警告が表示されることがあります。この特定のシナリオを試していません。それ以外の場合、LogCatのエラーメッセージは、リソースIDが有効なディメンションリソースではないことを示しているはずです。 – CommonsWare

+0

IDEにエラーはありませんでした。私が問題を見たのは、私がアプリを起動しようとしていたときだけだった。 – Funlamb