Android在运行时通过id查找资源

发布于 2024-12-09 02:20:24 字数 787 浏览 0 评论 0原文

如果我收到错误“android.content.res.Resources$NotFoundException:资源 ID #0x7f050007 类型 #0x12 无效”,如果我知道该资源的 ID,我可以找到该资源的内容吗?

        ListView list = (ListView)findViewById(R.id.messages_list_view);
        list.setAdapter(new ArrayAdapter<String>(context,
        R.layout.messages_list, headers));

消息列表.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/messages_list_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ListView android:id="@+id/messages_list_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

If I get the error "android.content.res.Resources$NotFoundException: Resource ID #0x7f050007 type #0x12 is not valid" can I find some what this resource is if I know its ID?

        ListView list = (ListView)findViewById(R.id.messages_list_view);
        list.setAdapter(new ArrayAdapter<String>(context,
        R.layout.messages_list, headers));

messages_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/messages_list_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ListView android:id="@+id/messages_list_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

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

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

发布评论

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

评论(4

記憶穿過時間隧道 2024-12-16 02:20:24

在 Fragment 中使用 ListView 时出现此错误。

通过将 setAdapter 行移至 Fragment 的 onViewCreated 函数来解决。 (在创建视图之前,ListView 是无效的,这是有道理的)。

所以你得到:

public void onViewCreated(View view,Bundle savedInstanceState){
    ListView list = (ListView) getView().findViewById(R.id.thelist);
    list.setAdapter(mAdapter);
}

I Got this error when using ListView in a Fragment.

Resolved by moving the setAdapter lines to the onViewCreated function of the Fragment. (makes sense that before the view is created the ListView is invalid).

so you get :

public void onViewCreated(View view,Bundle savedInstanceState){
    ListView list = (ListView) getView().findViewById(R.id.thelist);
    list.setAdapter(mAdapter);
}
昔梦 2024-12-16 02:20:24

对于那些其他提到的解决方案不起作用的人。

我犯了这个愚蠢的错误:-

setContentView(R.id.something);

而不是

setContentView(R.layout.something);

纠正它,并且错误消失了:D

For those whom other mentioned solutions don't work.

I did this silly mistake:-

setContentView(R.id.something);

Instead of

setContentView(R.layout.something);

Corrected that, and error was gone :D

时光与爱终年不遇 2024-12-16 02:20:24

您可以使用 Eclipse 中的搜索功能,搜索“0x7f050007” 或转到包含您的资源的 projectfolder/gen/path/R.java

您会发现类似这样的内容:

public static final int lineItem=0x7f07001c;

然后使用 Eclipse 搜索功能搜索(在本例中)lineItem。它将带您到代码中的资源。

You can either use the search function in eclipse, search for "0x7f050007" or go to projectfolder/gen/path/R.java that contains your resources.

You'll find something like this:

public static final int lineItem=0x7f07001c;

Then search for(in this example) lineItem with Eclipses search function. It'll take you to your resource in code.

左岸枫 2024-12-16 02:20:24

检查您的导入(在类文件的顶部)。也许您导入了

android.R

(它提供了对平台资源的访问)而不是

{your_package_name}.R

(您也可以将其留空)。

Check your imports (at the top of your class-file). Maybe you imported

android.R

(which provides access to the platform-resources) instead of

{your_package_name}.R

(you can also leave it blank).

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