1. ホーム
  2. java

[解決済み] Button.setBackground(Drawable background) throws NoSuchMethodError

2022-02-28 13:12:52

質問

を追加する簡単なメソッドを実装しています。 ButtonLinearLayout をプログラムで作成します。

setBackground(Drawable background)メソッドを呼び出すと、以下のようになります。 Error がスローされます。

java.lang.NoSuchMethodError: android.widget.Button.setBackground

私のaddNewButtonメソッド。

private void addNewButton(Integer id, String name) {

        Button b = new Button(this);
        b.setId(id);
        b.setText(name);
        b.setTextColor(color.white);
        b.setBackground(this.getResources().getDrawable(R.drawable.orange_dot));
            //llPageIndicator is the Linear Layout.
        llPageIndicator.addView(b);
}

解決方法は?

レベル16以下のAPIでテストしている可能性があります ( ジェリービーン ).

setBackground メソッドは、そのAPIレベル以降でのみ利用可能です。

で試してみます。 setBackgroundDrawable (非推奨)または setBackgroundResource ということであれば

例えば

Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
Button one = new Button(this);
// mediocre
one.setBackgroundDrawable(d);
Button two = new Button(this);
// better
two.setBackgroundResource(R.drawable.ic_launcher);