14

プログラムで aButtonに aを追加する簡単な方法を実装しています。LinearLayout

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);
}
4

5 に答える 5

42

レベル 16 ( Jelly Bean ) 未満の 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);
于 2013-09-01T14:24:27.173 に答える
0
            <Button
                android:id="@+id/btnregister"
                android:layout_width="150dp"
                android:layout_height="45dp"
                android:layout_gravity="center"
                android:layout_marginHorizontal="10dp"
                android:layout_marginVertical="20dp"
                android:paddingVertical="5dp"
                style="@style/btn_register"
                android:text="Register"
                android:textColor="#FFFFFF" />

以下のコードを Styles.xml ファイルに適用します。

 <style name="btn_register">
        <item name="android:layout_marginTop">15dp</item>
        <item name="android:backgroundTint">#009688</item>
        <item name="cornerRadius">20dp</item>
    </style>
于 2020-05-28T02:59:36.077 に答える
-1

使用できませんsetBackground()。この方法は、Android レベルでは使用できない場合があります。

于 2013-09-01T14:49:45.730 に答える