gpt4 book ai didi

android - getIdentifier() 一直返回 0

转载 作者:行者123 更新时间:2023-11-29 18:26:21 25 4
gpt4 key购买 nike

我试图在卡片 View 中显示图像和标题。代码应该从文本文件中获取图像名称并将其转换为图像的 ID,这些图像已经在可绘制文件中。但是当我在模拟器上运行我的代码时,只显示标题。所以我使用 Log.d 检查值,结果发现图像的名称已经存在,但资源 ID 为 0。我一直在寻找相同的问题和解决方案,但没有任何效果。或者是否有更好的方法在适配器中检索图像的 ID?

@Override
public void onBindViewHolder(@NonNull MyRecyclerViewAdapter.MyViewHolder myViewHolder, int i) {

News news = news_list.get(i);
myViewHolder.textView_title.setText(news.getNews_title());
mContext = mContext.getApplicationContext();
String imageName = news.getImage_name();
int resID = mContext.getResources().getIdentifier(imageName, "drawable", mContext.getPackageName());
Log.d("here",news.getImage_name());
Log.d("here", String.valueOf(resID));
final String URL = news.getURLs();
myViewHolder.imageView_image.setImageResource(resID);

以上是我的 recyclerviewadapter 的 onBindViewHolder 中的代码,用于在 cardview 中显示标题和图像。

2019-11-10 13:09:00.688 29179-29179/com.example.assignment4_task1 D/here: cyber5.png
2019-11-10 13:09:00.689 29179-29179/com.example.assignment4_task1 D/here: 0

2019-11-10 13:09:00.707 29179-29179/com.example.assignment4_task1 D/here: cyber1.png

2019-11-10 13:09:00.707 29179-29179/com.example.assignment4_task1 D/here: 0

2019-11-10 13:09:00.782 29179-29179/com.example.assignment4_task1 D/here: ai1.png

2019-11-10 13:09:00.782 29179-29179/com.example.assignment4_task1 D/here: 0

2019-11-10 13:09:00.799 29179-29179/com.example.assignment4_task1 D/here: ai3.png

2019-11-10 13:09:00.799 29179-29179/com.example.assignment4_task1 D/here: 0

2019-11-10 13:09:00.824 29179-29179/com.example.assignment4_task1 D/here: cyber5.png

2019-11-10 13:09:00.824 29179-29179/com.example.assignment4_task1 D/here: 0

2019-11-10 13:09:00.842 29179-29179/com.example.assignment4_task1 D/here: ai2.png

2019-11-10 13:09:00.842 29179-29179/com.example.assignment4_task1 D/here: 0

2019-11-10 13:09:00.860 29179-29179/com.example.assignment4_task1 D/here: ai4.png

2019-11-10 13:09:00.861 29179-29179/com.example.assignment4_task1 D/here: 0

以上是 Logcat 的结果。图片名称已经存在,我没有故意在名称后面加上 +".png",但资源 ID 仍然返回 0。

最佳答案

从您的资源名称中删除 .png。 getIdentifier 在没有文件扩展名的情况下工作。

String imageName = news.getImage_name().substring(0, str.lastIndexOf('.'))

如果您想使用文件扩展名,请使用 Assets 文件夹(我认为在您的情况下最好使用 Assets 文件夹):

Drawable d = Drawable.createFromStream(getAssets().open("Images/image_name.png"), null);

关于android - getIdentifier() 一直返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58786038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com