2011-12-01 92 views
1

我想让我的spinneradapter工作。我没有得到任何错误,但是 微调控制器仍然是空的。我已经阅读了多个教程,但他们似乎没有很好地工作 。我试图将特定颜色的每一行都打开,这就是为什么我需要适配器。 这是我的代码:正确使用SpinnerAdapter

public class spinnerAdapter extends ArrayAdapter<String> implements 
    SpinnerAdapter { 
    Context context; 
    ArrayList<String> dateArray; 

public spinnerAdapter(Context context, ArrayList<String>dateArray) { 
    super(context, R.layout.ruilen2_spinner); 
    this.context = context; 
    this.dateArray = dateArray; 
} 

static class ViewHolder { 
    public TextView textView; 
    public TextView textView2; 
} 
@Override 
public View getDropDownView(int position, View view, ViewGroup parent) { 

    View rowView = view; 
    final ViewHolder holder; 

    if (rowView == null) { 
     LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
       Context.LAYOUT_INFLATER_SERVICE); 
     rowView = vi.inflate(R.layout.ruilen2_spinner, null); 
     holder = new ViewHolder(); 
     holder.textView = (TextView)rowView.findViewById(R.id.spinnerdate); 
     //holder.textView2 = (TextView)rowView.findViewById(R.id.spinnerworkplace); 
     rowView.setTag(holder); 
    } 
    else{ 
     holder = (ViewHolder) rowView.getTag(); 
    } 
    holder.textView.setText(dateArray.get(position)); 
    return super.getDropDownView(
       position, rowView, parent); 
} 
} 

下面的代码片段,我调用类:

s.setAdapter(new spinnerAdapter(getParent(),namen)); 

最后但并非最不重要的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" android:background="@color/white" 
android:layout_width="fill_parent" android:layout_height="fill_parent"> 

<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/spinnerdate"  android:textColor="@color/black"></TextView> 
<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/spinnerworkplace" android:textColor="@color/black"></TextView> 
</LinearLayout> 

回答

0

如果显示,但是空的,那么你可能不会正确地创建dateArray。您是否确认namens.setAdapter(new spinnerAdapter(getParent(),namen));中有任何内容?

+0

不,那不是。打印ArrayList的名称在一个循环中,它们在里面,所以它必须是其他东西..但无论如何感谢您的帮助 – nostradamus

+0

我教程刚刚发现建议覆盖'getView'以及'getDropDownView' '@Override public View getDropDownView(int position,View convertView, ViewGroup parent){return getCustomView(position,convertView,parent); }' '@Override public View getView(int position,View convertView,ViewGroup parent){return getCustomView(position,convertView,parent); } ' – Andrew