31

Javaクラスの整数リソースにアクセスする方法が見つかりましたが、別のリソースのドキュメントはありませんでした

res/values/integers.xml のリソースは次のとおりです。

<resources>
     <integer name="input_field_padding" >5</integer>
</resources>

EditText で input_field_padding にアクセスしようとしました。

<EditText
        android:id="@+id/user_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"    
        android:padding="@integer/input_field_padding" />

しかし、私は次の例外を得ました

java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x10

別のリソースファイルでアクセスすることは可能ですか、それとも何か不足していますか?

4

6 に答える 6

34

最後に、Javaコードの整数リソースとxmlのdimenとしての整数値にアクセスできます。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="input_field_padding">20dip</dimen>
    <integer name="input_field_padding">20</integer>
</resources>

xmlファイルの場合:-

<EditText
    android:id="@+id/user_name"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"    
    android:padding="@dimen/input_field_padding" /> 

Javaファイルの場合:-

EditText mUsername = (EditText) this.findViewById(R.id.user_name);
//int padding = this.getResources().getInteger(R.integer.input_field_padding);
int padding = (int) this.getResources().getDimension(R.dimen.input_field_padding);
mUsername.setPadding(padding, padding, padding, padding);
于 2012-07-10T04:52:39.800 に答える
-1

整数フィールドにアクセスする正しい方法は、@integer/input_field_padding

XML で

 <EditText
        android:id="@+id/user_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"    
        android:padding="@dimen/input_field_padding" /> 

ジャワで

R.integer.integer_name

このhttp://developer.android.com/guide/topics/resources/more-resources.html#Integerを参照してください。

于 2014-05-17T08:12:14.033 に答える