2016-01-13 39 views
0

我已经完成它的自定义微调与自定义适配器,但得到了一些默认的文本每次如何避免这个问题,每次只应微调显示第0位文本:如何避免自定义微调器Android中的默认文本问题?

CourseAdapter courseAdapter = new CourseAdapter(mContext); 
customViewHolder.spinner.setAdapter(courseAdapter); 

而CourseAdapter.java

public class CourseAdapter extends BaseAdapter { 

    public static final String TAG=CourseAdapter.class.getName(); 
    List<String> courses =new ArrayList<>(); // code to get the courses ArrayList 
    Context context; 
    private void fillCourses() 
    { 
     for(int i =0;i<10;i++) 
     { 
      if(i == 0) 
      { 
       courses.add("Choose"); 
      } 
      else 
      { 
       courses.add("courses:"+i); 
      } 
     } 
    } 
    public CourseAdapter(Context context) 
    { 
     this.context = context; 
     fillCourses(); 
    } 

    @Override 
    public int getCount() { 
     return courses.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return courses.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolderFilterItem viewHolder; 
     if (convertView == null) { 
      Log.d(TAG, "fillCourses size:" + courses.size()); 
      convertView = LayoutInflater.from(context) 
        .inflate(R.layout.layout_customspinner, parent, false); 
      viewHolder = new ViewHolderFilterItem(); 
      viewHolder.textView = (TextView) convertView.findViewById(R.id.txtViewFilterItem); 
      viewHolder.checkBox = (CheckBox)convertView.findViewById(R.id.checkboxFilterItem); 
      //store the holder with the view. 
      convertView.setTag(viewHolder); 
      return convertView; 
     } 
     else 
     { 
      Log.d(TAG, "convertview != null:" + courses.size()); 
      viewHolder = (ViewHolderFilterItem) convertView.getTag(); 
     } 
     if(courses != null && courses.size() > 0) { 
      String itemText = courses.get(position); 
      if (itemText != null) { 
      viewHolder.textView.setText(itemText); 
      viewHolder.checkBox.setChecked(true); 
      } 
      if(position == 0) 
      { 
      viewHolder.checkBox.setVisibility(View.GONE); 
      } 
     } 
     return convertView; 
    } 
    private class ViewHolderFilterItem{ 
     TextView textView; 
     CheckBox checkBox;} 

}[![[why Filter item text with checkbox appearing ?][1]][1] 
+0

你有没有试过'android:prompt =“@string/spinner_header”'? –

+0

你是什么意思的'一些默认文本'你正在。 – Bharatesh

+0

默认文字是指? @Erum –

回答

0

你必须在设置后使用courseAdapter.notifyDataSetChanged()customViewHolder.spinner.setAdapter(courseAdapter);

希望这会有所帮助。