gpt4 book ai didi

android:微调器的每个项目都有不同的颜色

转载 作者:搜寻专家 更新时间:2023-11-01 07:39:33 25 4
gpt4 key购买 nike

我有一个微调器,我希望其中每个项目的文本都具有不同的颜色。例如,item0 的文本应该是红色的,item1 的文本应该是蓝色的,item2 的文本应该是绿色的。我尝试将要更改的项目设置为 textView 并更改 textview 的颜色,但它不能那样工作。关于如何完成此任务的任何想法?

              Spinner spinner = (Spinner) findViewById(R.id.spinner1);

ArrayList<String> array = new ArrayList<String>();
array.add("item0");
array.add("item1");
array.add("item2");

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,R.layout.row, array);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(spinnerArrayAdapter)

try{
TextView tv = new TextView((Context) spinner.getItemAtPosition(0));
tv.setTextColor(Color.argb(0, 255, 0, 0));
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error: " + e.toString(), Toast.LENGTH_LONG);
}

最佳答案

创建您自己的类来扩展 BaseAdapter 并实现 SpinnerAdapter。

覆盖 getDropDownView,当您处理位置时,您可以从您膨胀的自定义布局中格式化 TextView 。

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent){

View v = convertView;

if (v == null) {
LayoutInflater vi = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.your_custom_layout, null);
}
TextView tv=(TextView) v.findViewById(R.id.yourTextViewFromYourLayout);
tv.setText(yourArrayList.getItem(position));
switch (position) {
case 0:
//set tv's color here...
break;
case 1:
//set tv's color here...
etc...
default:
//set default color or whatever...
}
return v;
}

关于android:微调器的每个项目都有不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com