ResourcesNotFoundException

时间:2014-01-21 12:28:39

标签: android android-resources

我的dimens.xml中有一个值,定义如下:

<dimen name="input_text_width">250dp</dimen>

我想用它来动态调整TextView的宽度,如下所示:

tv.setWidth(activity.getResources().getInteger(R.dimen.input_text_width));

资源存在(在R.java中检查)。我跑了&#34;清洁&#34;在我的项目不止一次。为什么我一直得到这个例外?

android.content.res.Resources$NotFoundException: Resource ID #0x7f050012 type #0x5 is not valid

3 个答案:

答案 0 :(得分:2)

我是从Android Docs

取得的
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="textview_height">25dp</dimen>
   <dimen name="textview_width">150dp</dimen>
   <dimen name="ball_radius">30dp</dimen>
   <dimen name="font_size">16sp</dimen>
</resources>

在代码中

//Retreive dimension
Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size);

在你的xml中

<TextView
android:layout_height="@dimen/textview_height"
android:layout_width="@dimen/textview_width"
android:textSize="@dimen/font_size"/>

我希望这会有所帮助!

答案 1 :(得分:0)

您必须获取尺寸像素...

int size = activity.getResources().getDimensionPixelSize(R.dimen.input_text_width);
textView.setWidth(size);

答案 2 :(得分:0)

可能是因为你使用:

activity.getResources().getInteger(R.dimen.input_text_width)

而不是:

activity.getResources().getDimension(R.dimen.input_text_width);