android.content.res.Resources$NotFoundException: String resource ID #0x1

没想到现在还会犯这么蠢的错……


int res = 111;
TextView.setText(res);

此时第二行会报错,报错内容如题目所示。
这个时候 setText() 方法会将放在其中的 int 类型当做资源 ID 去查找,所以自然会找不到该资源。顺着内部数据为非 String 类型的 setText() 方法点进源码去,就一目了然了:

public final void setText(@StringRes int resid) {

setText(getContext().getResources().getText(resid));

}

解决方式只要将方法内所要放置的内容更改成 String 类型就可以了,提供三种思路:

int res = 111;
TextView.setText(Integer.toString(res));
TextView.setText(String.valueOf(res));
TextView.setText(res+"");

你可能感兴趣的:(android.content.res.Resources$NotFoundException: String resource ID #0x1)