我正在尝试创建一个用户可主题应用。我有可点击的线性布局,我需要在将布局添加到父视图时以编程方式设置选择器。但是,当我设置v.SetBackground()时,以下代码抛出NoSuchMetod异常。
我哪里错了?
LinearLayout d = (LinearLayout) inflater.inflate(R.layout.adapter_psudo_launcheritem, null);
ColorDrawable clrBase = new ColorDrawable();
clrBase.setColor(gCurrentTheme.Colours.Backgrounds.MenuItem);
ColorDrawable clrSelect = new ColorDrawable();
clrSelect.setColor(gCurrentTheme.Colours.Backgrounds.MenuItem_Select);
ColorDrawable clrPress = new ColorDrawable();
clrPress.setColor(gCurrentTheme.Colours.Backgrounds.MenuItem_Press);
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_enabled}, clrBase);
states.addState(new int[] {android.R.attr.state_selected}, clrSelect);
states.addState(new int[] {android.R.attr.state_pressed}, clrPress);
//This line causes a NoSuchMethod exception!
v.setBackground(states);
答案 0 :(得分:0)
View.setBackgroud
已在api level 16
和replaceB setBackgroundDrawable
中引入(自API 16
以来不推荐使用))如果运行上述代码的移动设备为{{1}如果级别低于16,则必须使用API