setDropDownBackgroundColor上找不到资源异常

时间:2013-11-19 15:50:28

标签: android android-resources android-background

我正在尝试为autocompleteTextView设置DropDown背景颜色,因为在不同的Android版本中标准值似乎不同。例如,从Android 3.2开始一切正常,但以前的版本似乎不接受xml中的android:textColor="@color/black",因为它对我不起作用。例如Android 2.3只显示列表中的项目和我选择的白色项目,这对我不起作用,因为背景也是白色的。所以我决定用这个改变android版本的背景颜色测定:

int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    if (currentapiVersion >= android.os.Build.VERSION_CODES.HONEYCOMB){
        // Do something for Honeycomb and above versions
        //everything is right
    } else{
        // do something for phones running an SDK before froyo
        box_Kurs.setDropDownBackgroundResource(Color.BLUE);
        box_Teacher.setDropDownBackgroundResource(Color.BLUE);
    }

但是,当我启动我的应用程序时,它会崩溃并显示资源未找到异常:

11-19 15:40:17.225: E/AndroidRuntime(450): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shr.khg/com.shr.khg.AddActivity}: android.content.res.Resources$NotFoundException: Resource ID #0xff0000ff

我做错了什么?自从其他人建议以来,我已经清理了我的项目。或者有没有更简单的方法来处理我的问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

问题在于setDropDownBackgroundResource()期望Color资源Drawable的ID,而不是定义int的{​​{1}}。如果您查看Color,您可以看到Android正在尝试查找标识为Exception的组件,这是完全不透明蓝色的十六进制代码,即#0xff0000ff <的值/ p>

答案 1 :(得分:0)

重申这两行:

box_Kurs.setDropDownBackgroundResource(Color.parseColor("#0000ff"));
box_Teacher.setDropDownBackgroundResource(Color.parseColor("#0000ff"));