でdimens.xmlリソースファイルから整数値を取得します。私は、10進数ですのEditTextを持っていると私はアンドロイド使用して、その長さを設定します。その長さが起こっているとアンドロイド
<EditText
android:id="@+id/quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal"
android:singleLine="true"
android:maxLength="@integer/quantity_length" />
:XMLでのmaxLengthプロパティをUI xmlファイルだけでなく、Javaクラスや他の場所でも使用できるように、今後この値を更新するときに問題を避けたいので、dimens.xmlリソースファイルに長さを集中させたい次のようになります。
TypedValue typedValue = new TypedValue();
this.getResources().getValue(R.integer.quantity_length, typedValue, true);
が、私は何の方法のgetInt()、だけはgetFloat()がないことに気付くことができます。私は、この値を読む必要はJavaクラスから
<resources>
<!-- other things -->
<!-- Constants -->
<item name="quantity_length" format="integer" type="integer">10</item>
<!-- other things -->
</resources>
をdimens.xmlので、私は実行します。
int digitsBefore = typedValue.getFloat();
私は整数として取得する必要があります....どのようにこれを行うには?もちろん、おそらく私はgetFloat()を使用して整数にキャストすることができます....しかし、それはエレガントな方法であるかどうかわかりません...どのようなアイデアですか?
更新日: 私は間違いを犯しました。それは: int量= typedValue.getFloat();
代わりに:
int digitsBefore = typedValue.getFloat();
あなたは 'getResources()。getDimens'を使用していない理由は? –