android - 从 fragment 动态获取 ImageView 中的图像总是返回 0 作为 resourceid

标签 android android-listview

在问这个问题之前,我已经遍历了所有的链接,仍然无法解决问题。

我有一个包含自定义 ListView 的 fragment ,我正在尝试从字符串中动态获取 imageView 中的图像(对于每个列表项)。(字符串是从数据库生成的,字符串的名称与 drawable 中的图像名称相匹配.* 文件夹)

在所有可能的方式中,我只是将 emageResouce int 值设为 0。 我已经完全检查过,图像名称(在可绘制文件夹中)与生成的字符串匹配。

以下是代码:--

int imageResource = getActivity().getResources().getIdentifier("android.banking:drawable/" + bank.getImageName(), null, null);
Log.d("BankListFragment", getContext().getPackageName() +"  "+imageResource +" "+bank.getImageName());
image.setImageResource(imageResource);


int imgResource = res.getIdentifier(bank.getImageName(), "drawable", getContext().getPackageName() );
Log.d("BankListFragment", getContext().getPackageName() +"  "+imgResource  +" "+bank.getImageName());

如果我尝试使用 src="@drawable/image1"对布局文件中的图像名称进行硬编码,它会起作用。 另外,如果我使用以下代码,它会起作用——

Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.image1);
image.setImageDrawable(drawable);

有人遇到过类似的问题吗?

EDIT::- 这里是 logcat 输出:--打印出正确的图像名称,可绘制文件夹包含所有这些文件。

09-01 15:47:34.051  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image1.jpg
09-01 15:47:34.051  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image2.jpg
09-01 15:47:34.061  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image3.jpg
09-01 15:47:34.061  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image4.jpg
09-01 15:47:34.061  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image5.jpg
09-01 15:47:34.061  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image6.jpg
09-01 15:47:34.061  17620-17620/android.banking D/BankListFragment﹕ android.banking  0 image7.jpg

最佳答案

我遇到了类似的问题,对我有用的是没有扩展名的字符串。

您生成的字符串不应包含扩展名。

你在Drawable代码中访问的方式是没有扩展的,我觉得你需要修改图片名生成String的逻辑。

希望这对您有所帮助。

关于android - 从 fragment 动态获取 ImageView 中的图像总是返回 0 作为 resourceid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25598253/

相关文章:

java - HashMap 上的 SimpleAdapter 无法正常工作

android - 除了适配器之外,还有其他方法可以将数据实现到 Activity 中吗?

android - 动态ListView几个item响应点击

android - android动态添加数据到ListView

javascript - Cordova:尝试发送 ID 的第二个回调:相机

java - 破译来自 Google Play 的崩溃报告

android - 如何避免将 Fragment 重新创建到 ViewPager 中?

java - Android ListView 与数组数据库

java - 从全局范围内的 XML 资源文件获取字符串值

Android:在没有 SurfaceView 的情况下从未调用过 onPreviewFrame