我从ArrayList(listaprac)填充Spinner(SpinnerPrac)。微调器工作正常,但我想对最后一个元素setTextColor进行操作。

这是我的适配器

 ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.spinneritem, listaprac);
         dataAdapter.setDropDownViewResource(R.layout.custom_spinner);
         SpinnerPrac.setAdapter(dataAdapter);


我想我应该使用getChildAt(listaprac.size())方法并像这样设置颜色:

((TextView) SpinnerPrac.getChildAt(listaprac.size())).setTextColor(Color.rgb(255, 0, 0));


但是它返回空指针异常。

我尝试返回ChildCount
SpinnerPrac.getChildCount()但返回0。为什么会发生?我在spinner中有6个项目。

最佳答案

为什么您不能在getViewArrayAdapter方法中执行此操作。检查位置,如果与列表大小匹配,请更改View的颜色

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(position == list.size() - 1){
        convertView.setTextColor(Color.rgb(255, 0, 0));
    }
}

10-06 02:41