首页 > 解决方案 > 是否可以以编程方式更改 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中必须如此复杂。

标签: android

解决方案


推荐阅读