gpt4 book ai didi

java - 如何使用Java在Android中生成每个项目具有不同背景颜色的微调器?

转载 作者:行者123 更新时间:2023-11-30 01:41:57 25 4
gpt4 key购买 nike

我想用Java生成一个用于颜色选择的微调器,下拉时它应该看起来像这样:

enter image description here

我的 Java 代码现在如下所示:

    final Spinner spinner = new Spinner(context);
String[] colors = new String[]{"[1]", "[2]", "[3]", "[4]", "[5]", "[6]"};
final List<String> colorsList = new ArrayList<>(Arrays.asList(colors));
final ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, colorsList) {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView tv = (TextView) super.getDropDownView(position, convertView, parent);
Color color = Color.rgb(18,18,218);
switch(position){
case 0:
color = Color.rgb(28,158,218);
break;
case 1:
color = Color.rgb(218,58,218);
break;
case 2:
color = Color.rgb(128,18,28);
break;
}
return view;
}
};

但是现在没有显示任何颜色,全是白色。更好的方法是什么?

最佳答案

BackgroundColor 设置为 view,而不是 TextView除此之外如果您想对所选 View 进行着色,那么您还必须重写getView。检查以下内容:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}

private View getCustomView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);

if (position % 2 == 1) {
view.setBackgroundColor(Color.parseColor("#FFC3C0AA"));
}
else {
view.setBackgroundColor(Color.parseColor("#FFB5DCE8"));
}

return view;
}

输出:

enter image description here

关于java - 如何使用Java在Android中生成每个项目具有不同背景颜色的微调器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633247/

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