我知道这个话题已被多次解决,我发现了几个这样的问题,但我不能满足我的需要.我希望在微调器中有一个颜色列表.我这样做了,但我的旋转器是空的.
在我的OnCreate()中:
spinner = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromresource( this,R.array.androidcolors,android.R.layout.simple_spinner_item); adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);
<resources> <item name="blue" type="color">#FF33B5E5</item> <item name="purple" type="color">#FFAA66CC</item> <item name="green" type="color">#FF99CC00</item> <item name="orange" type="color">#FFFFBB33</item> <item name="red" type="color">#FFFF4444</item> <item name="darkblue" type="color">#FF0099CC</item> <item name="darkpurple" type="color">#FF9933CC</item> <item name="darkgreen" type="color">#FF669900</item> <item name="darkorange" type="color">#FFFF8800</item> <item name="darkred" type="color">#FFCC0000</item> <integer-array name="androidcolors"> <item>@color/blue</item> <item>@color/purple</item> <item>@color/green</item> <item>@color/orange</item> <item>@color/red</item> <item>@color/darkblue</item> <item>@color/darkpurple</item> <item>@color/darkgreen</item> <item>@color/darkorange</item> <item>@color/darkred</item> </integer-array> </resources>
解决方法
这很简单,你必须这样做
1.为微调器编写自己的自定义适配器,这是你如何做到的
class SpinnerAdapter extends BaseAdapter { ArrayList<Integer> colors; Context context; public SpinnerAdapter(Context context) { this.context=context; colors=new ArrayList<Integer>(); int retrieve []=context.getResources().getIntArray(R.array.androidColors); for(int re:retrieve) { colors.add(re); } } @Override public int getCount() { return colors.size(); } @Override public Object getItem(int arg0) { return colors.get(arg0); } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(int pos,View view,ViewGroup parent) { LayoutInflater inflater=LayoutInflater.from(context); view=inflater.inflate(android.R.layout.simple_spinner_dropdown_item,null); TextView txv=(TextView)view.findViewById(android.R.id.text1); txv.setBackgroundColor(colors.get(pos)); txv.setTextSize(20f); txv.setText("Text "+pos); return view; } }
2.像这样设置适配器
spnColors=(Spinner)findViewById(R.id.spnColor); spnColors.setAdapter(new SpinnerAdapter(this));
最终结果是
请接受答案,如果有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。