Android:将资源ID作为参数传递

Cra*_*Dev 6 android android-resources

我有这个代码:

translateRight("iv1"); //iv1 is an id of an imageView

    private void translateRight(String st){

    ImageView img = (ImageView)findViewById(R.id.st);
        Animation a = AnimationUtils.loadAnimation(this, R.anim.translate_right);
        img.startAnimation(a);
    }
Run Code Online (Sandbox Code Playgroud)

我有"translateRight"这是一个显示动画的方法,但在这种方法中我应该传递一个资源ID; 我尝试了一个字符串,但它不起作用,我该怎么办?

Dmi*_*sev 14

资源ID - 是一个整数值.只需通过int:

private void translateRight(int resource){
    ImageView img = (ImageView) findViewById(resource);
    //stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 只是添加到这个答案中,该函数现在接受任何整数值。因此,如果您传递 -13 或某个任意数字,它会接受它并尝试查找具有该 id 的视图。这可以通过在参数中添加“@IdRes”注释来处理。这将确保在编译时仅发送“R.id”类型 int。 (3认同)

eas*_*ese 5

资源ID是整数,而不是String.