gpt4 book ai didi

java - Android 资源 ID 在三元运算符和方法中丢失

转载 作者:行者123 更新时间:2023-12-02 03:45:37 24 4
gpt4 key购买 nike

这是我遇到的一个奇怪的边缘情况。我通过使用方法(返回表示资源 ID 的整数)的三元运算符将可绘制对象的资源 ID 分配给变量。以下是我遇到的问题的示例:

private int test() {
return R.drawable.ic_one;
}

public void main() {
int myIcon = (true) ? test() : R.drawable.ic_two;
imageView.setImageResource(myIcon);
}

在上面的示例中,setImageResource 将无法编译,因为它需要资源 ID。但是,如果您将三元运算符更改为直接引用 ID,则它可以工作:

int myIcon = (true) ? R.drawable.ic_one : R.drawable.ic_two;

这表明 test() 的返回值 (int) 是罪魁祸首,但直接使用 test() 也可以:

int myIcon = test();

鉴于三元运算符和方法都单独返回工作,将它们组合起来会导致失败吗?

最佳答案

构建工具处理支持注释的方式可能有些愚蠢。尝试将 @DrawableRes 添加到 test() 的返回值中。我认为这就是语法,尽管我不能 100% 确定:

private @DrawableRes int test() {
return R.drawable.ic_one;
}

关于java - Android 资源 ID 在三元运算符和方法中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339224/

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