我正在尝试将列表项在被选中时具有的样式应用到 View (在我的例子中是 TextView)
这里是橙色风格。我发现这个外观是由一个 Drawable Object 定义的。所以我尝试了,所以获取可绘制对象并将其应用到我的 View 中
TextView tv = new TextView(this);
tv.setText("Hello, Android");
tv.setBackgroundDrawable(new ListView(this).getSelector());
setContentView(tv);
但它不起作用。 有人知道如何做到这一点吗?
好的,我知道怎么做了。我发现 hat ListView 使用了在 android.R.drawable 中定义的 ColorStateList list_selector_background。使用 ResourceBrowser 我知道第四种颜色是选定的可绘制对象,所以我将以下内容添加到我的代码中
StateListDrawable listDrawables= (StateListDrawable)getResources().getDrawable(android.R.drawable.list_selector_background);
listDrawables.selectDrawable(3);
Drawable highlightDrawable = listDrawables.getCurrent();
现在我可以使用 higlightDrawable 设置我的背景。我不知道是否可以访问 xml 中的 drawable 我还没有尝试过。感谢您的帮助!
最佳答案
关于android - 获取 ListView 可绘制对象并手动应用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347677/