android - 是否可以以编程方式更改 Spinner 主题?
问题描述
我在 Fragment 上有许多微调器,我需要根据所选项目更改微调器颜色。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
//Load defaults
View view = inflater.inflate(R.layout.fragment_zone_types,container,false);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getContext(), R.array.zoneTypes, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
final Spinner spinner = (Spinner) view.findViewById(R.id.spinnerZ1Type);
spinner.setAdapter(adapter);
if(spinner.getSelectedItemPosition()>0)
{
adapter.setDropDownViewTheme(Resources.Theme R.drawable.gradient_spinner2);
}
else
{
adapter.setDropDownViewTheme(Resources.Theme R.drawable.gradient_spinner);
}
return view;
}
我已经在不同的 XML 文件中创建了两个主题;gradient_spinner.xml 和 gradient_spinner2.xml。
在其他语言中是这么简单的事情,我不明白为什么在Android中必须如此复杂。
解决方案
推荐阅读
- angular-material - 我有一个错误 Angular 材料,运行项目
- python - Plotly Chloropleth 与 ScatterGeo 结合
- javascript - 多个按钮上的 jQuery ToggleClass
- java - “更改此条件,使其不会总是评估为“假””
- c# - 各种 Microsoft.CodeQuality.* 分析器之间有什么区别?
- c# - 在 DLL“libSkiaSharp”中找不到名为“sk_color_get_bit_shift”的入口点。使用 SkiaSharp 15.9.1 时
- javascript - react native:如何在应用程序启动时自动运行 websocket 服务器
- javascript - 更新 javascript 中现有的默认参数
- node.js - Windows 节点服务未侦听端口
- javascript - 将 mocha 测试映射到 jira id