无法对图像使用 parseInt - Android

发布于 2024-10-19 19:17:51 字数 348 浏览 6 评论 0原文

我在将不同图像放入列表时遇到问题。 我创建了一个自定义列表,除了图像问题之外,一切正常。 我的问题是这些行 -

Integer p = Integer.parseInt("R.drawable.absolut");
holder.icon.setImageResource(p);

在日志中我看到以下错误 -

03-03 08:16:07.121: ERROR/AndroidRuntime(25486): java.lang.NumberFormatException:无法将 'R.drawable.absolut' 解析为整数

什么可能导致这种情况?

谢谢!

I have a problem with putting different images in a list.
I created a custom list and everything worked fine, except the images issue.
My issue is with these line -

Integer p = Integer.parseInt("R.drawable.absolut");
holder.icon.setImageResource(p);

In the log I see the following error-

03-03 08:16:07.121: ERROR/AndroidRuntime(25486): java.lang.NumberFormatException: unable to parse 'R.drawable.absolut' as integer

What could cause this?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疏忽 2024-10-26 19:17:51

Parse int 用于解析“0”、“100”等字符串,与您想要实现的目标无关。你必须直接使用drawable id:

holder.icon.setImageResource(R.drawable.icon);

如果出于某种原因你不能使用常量,获取drawable id的正确方法是:

Context context = getContext(); //obtain a context
int drawableId = context.getResources().getIdentifier("icon", "drawable", context.getPackageName());

但这根本不是一个好的做法,并且表明你的应用程序设计有问题。

Parse int intended for parsing strings like "0", "100" etc and has nothing to do with what you're trying to achieve. You have to use the drawable id directly:

holder.icon.setImageResource(R.drawable.icon);

If for whatever reason you can't use the constant, correct way to get the drawable id would be:

Context context = getContext(); //obtain a context
int drawableId = context.getResources().getIdentifier("icon", "drawable", context.getPackageName());

But that's not a good practice at all and idicates that you have problems with your app design.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文