java - Button.setBackground(Drawable 背景) 抛出 NoSuchMethodError

标签 java android exception button

我正在实现一个简单的方法,以编程方式将 Button 添加到 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);
}

最佳答案

您可能正在测试 16 级以下的 API (Jelly Bean)。

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

关于java - Button.setBackground(Drawable 背景) 抛出 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559248/

相关文章:

java - Eclipse 生成复制构造函数

java - 向 hashmap 添加值时出现 ConcurrentModificationException

java - Gson:有没有办法使用 GSON 只解析特定的内部 JSON 列表?

android - 对于 Android,我可以将设置按钮放在选项卡栏而不是工具栏吗?

android - 如何使用新的 MediaSession 类接收 Android 5.x 上的媒体按钮按下?

java - Android Studio变黑并卡住

Python:如何捕获异常并继续?

visual-studio - 调试期间算术下溢或上溢异常

java - 为什么 NoClassDefFoundError 的名称错误

java - Android 图标有时打开新应用程序有时会显示旧应用程序,求助!