在ImageView上使用setBackgroundDrawable时出现Eclipse错误

时间:2013-12-10 17:27:44

标签: java android imageview drawable setbackground

在ImageView上使用setBackgroundDrawable方法时,Eclipse会出现以下错误: “View类型中的方法setBackgroundDrawable(Drawable)不适用于参数(int)” 我的ImageView在xml中定义为:

<ImageView
                android:id="@+id/ivCheck1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:src="@drawable/box"
                android:contentDescription=" " />

在java中定义并实现为:

public class QuizList extends Activity implements View.OnClickListener {

ImageView check1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.theView);
    IntializeVariables();
    IntializeChecks()
}

private void IntializeVariables() {
    // TODO Auto-generated method stub

    check1 = (ImageView) findViewById(R.id.ivCheck1);

}

private void IntializeChecks() {
    // TODO Auto-generated method stub
    boolean check = getPrefs.getBoolean("quiz1pref", false);
    if (check == true) {
        check1.setBackgroundDrawable(R.drawable.check);
    }
}

任何人都知道为什么会出现这个错误,或者如何解决它?

3 个答案:

答案 0 :(得分:3)

check1.setBackgroundDrawable(R.drawable.check);

这是错误。请将其更改为

check1.setBackgroundResource(R.drawable.check);

check1.setBackgroundDrawable(getResources().getDrawable(R.drawable.check));

答案 1 :(得分:0)

试试这个:

check1.setBackgroundDrawable(getResources().getDrawable(R.drawable.check));

答案 2 :(得分:0)

而不是: -

check1.setBackgroundDrawable(R.drawable.check);

使用: -

check1.setImageResource(R.drawable.check);