java - 有效地利用位置来控制 Action

标签 java android position

我想使用位置(例如从 gridview 返回)或类似的整数来执行各种操作,例如创建一个 Sprite ,或者在任何需要数字以外的东西的命令中,例如我想使用类似的东西:

sprites.add(createSprite(R.drawable.image(position));

,其中 createSprite 使用提供的图像创建 Sprite ,

而不是:

if (position == 1) {sprites.add(createSprite(R.drawable.image1);}
if (position == 2) {sprites.add(createSprite(R.drawable.image2);}
...etc

对于字符串有一个简单的解决方案:

Most efficient method to use position to open a .java

但是对于像这样的情况呢?

最佳答案

@abhinav8 的建议的缺点(顺便说一句,这绝对不是一个坏建议)是,您无法免费从不同大小/密度的存储桶中获得动态加载。或者,您可以只声明一个包含资源 id 的数组并对其进行迭代。

作为最后的手段,我还想指出 Resources 类提供的一个方法:

getIdentifier(String name, String defType, String defPackage) .

这允许您按名称动态查找资源标识符,这意味着您可以按照类似于链接的问答中建议的方式使用它。

但是,有一个问题,该问题已作为注释添加到该方法的文档中。它说:

use of this function is discouraged. It is much more efficient to retrieve resources by identifier than by name.

这基本上意味着:除非确实必要,否则不要使用它,即使如此,也很少使用它。只是觉得我应该指出完整性的方法。

关于java - 有效地利用位置来控制 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876253/

相关文章:

java - 更新 Android 上的选项卡?

带百分比的 css 位置

java - 无法使用递归找到祖先

java - 捕获超链接点击java SWT

java - 布局错误无法弄清楚

android - 在 Kotlin 中使用 Flowable 的多个 retrofit2 请求

android - 在android中将视频上传到facebook

android - 如何在 Android 上的方向更改时避免重新启动 Activity

Javascript 元素相对于屏幕的位置

行的CSS表格高度不均匀