【问题标题】:about TypedArray obtainTypedArry关于 TypedArray 获得TypedArry
【发布时间】:2018-01-14 13:34:25
【问题描述】:

这两行是我写的:

final  String[] options = res.getStringArray(breakFastNames);
final  TypedArray icons = res.obtainTypedArray(R.array.breakFastIcons);

第一个正在工作。但是当我把它放在putExtra 中时,第二个会出错:

mIntent.putExtra("OPTIONS",options[i]);
mIntent.putExtra("ICONS", icons[i]);

如果有人能够解决这个问题,我们将不胜感激。

【问题讨论】:

  • 错误回溯是什么?
  • 错误:需要数组,但找到了 TypedArray

标签: android arrays android-intent typedarray


【解决方案1】:

TypedArray 是类 TypedArray 的实例,它不是 Java 数组,因此您不能使用 [i] 引用数组的单个值。

假设iconsDrawable 的数组,请改用:

mIntent.putExtra("OPTIONS",options[i]);
mIntent.putExtra("ICONS", icons.getDrawable(i));

【讨论】:

  • 感谢您的重播,实际上 ICON 是来自 XML 值文件的数组。我使用了你的方法 getDrwable ,但我收到另一个错误,说 Drwable 无法转换。
  • icons中的变量是什么类型?如果它们是ints,那么您应该使用icons.getInt(i, -1)。您可以将您的 XML 文件粘贴到问题中。
  • 非常感谢,这个工作就像魔术一样,请告诉下一个活动中接收数据的最佳方法是什么。再次感谢。
  • 很高兴这解决了您的问题。我不明白您所说的“在下一个活动中接收数据的最佳方法”是什么意思。如果您还有其他问题,请发布一个新问题。最好将单独的问题分开保存。但先搜索看看是否已经找到答案。
  • 另外,由于您是 Stackoverflow 的新手,如果我的回答对您有帮助,您应该通过单击答案旁边的绿色复选标记“接受”它。这对我和你都有帮助,并且会从“未回答的问题”列表中删除该问题。
猜你喜欢
  • 2014-12-23
  • 2014-11-19
  • 2016-06-04
  • 2015-06-11
  • 2011-11-20
  • 2014-09-11
  • 2019-11-21
  • 2013-01-21
  • 2016-10-04
相关资源
最近更新 更多