2011-12-01 26 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