2015-11-25 2 views
0

Мне нужно настроить spinner в Android.
У меня есть простой адаптер:Как настроить spinner в Android

public class MonthsSpinnerAdapter extends BaseAdapter { 

private Activity context; 
private String [] itemList; 

public MonthsSpinnerAdapter(Activity context,String [] monthArray) { 
    this.context=context; 
    this.itemList=monthArray; 
} 

@Override 
public int getCount() { 
    return 0; 
} 

@Override 
public Object getItem(int position) { 
    return itemList[position]; 
} 

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

public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View row = inflater.inflate(R.layout.spinner_item, parent, 
      false); 
    RobotoTextView make = (RobotoTextView) row.findViewById(R.id.spinner_title); 
    make.setText(itemList[position]); 
    Log.d("SpinnerA", "getView"); 
    return row; 
} 


public View getDropDownView(int position, View convertView, ViewGroup parent) { 

    LayoutInflater inflater = context.getLayoutInflater(); 
    View row = inflater.inflate(R.layout.spinner_dropdown_item, parent, 
      false); 
    RobotoTextView month = (RobotoTextView) row.findViewById(R.id.spinner_month); 
    month.setText(itemList[position]); 
    RobotoTextView year = (RobotoTextView) row.findViewById(R.id.spinner_year); 
    year.setText(context.getString(R.string.year)); 
    Log.d("SpinnerA", "getDropDownView"); 
    return row; 
} 

} 

Но когда я добавил его к моей блесны и запустить вверх, я не вижу ничего в блесны.

MonthsSpinnerAdapter adapter = new MonthsSpinnerAdapter(GeneralActivity.this 
           , getResources().getStringArray(R.array.month_list)); 
spinner.setAdapter(adapter); 

Я думаю, что это будет хорошо работать, но я не знаю, где у меня ошибка. Это пример того, что я вижу, при запуске приложения: enter image description here
И на этой картине, что мне нужно: enter image description here

И это мои XML файлы, если вам необходимо: макет

<com.devspark.robototextview.widget.RobotoTextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:typeface="roboto_medium" 
    android:padding="5dp" 
    android:textColor="#fff" 
    android:id="@+id/spinner_title" 
    android:text="month" 
    android:background="@color/primary_color" 
    xmlns:android="http://schemas.android.com/apk/res/android" /> 

И DropDown:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" > 

<com.devspark.robototextview.widget.RobotoTextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:typeface="roboto_medium" 
    android:layout_marginTop="16dp" 
    android:layout_marginLeft="12dp" 
    android:id="@+id/spinner_month" 
    android:text="month" 
    android:textColor="#545454" 
    android:background="#fafafa" /> 

    <com.devspark.robototextview.widget.RobotoTextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:typeface="roboto_regular" 
     android:layout_marginTop="16dp" 
     android:layout_marginRight="12dp" 
     android:layout_alignParentRight="true" 
     android:text="year" 
     android:id="@+id/spinner_year" 
     /> 

</RelativeLayout> 

Помогите мне пожалуйста с моей проблемой

ответ

1

попытаться вернуть itemList.length в GetCount функции вашего адаптера.

@Override 
public int getCount() { 
    return itemList.length; 
} 
+0

Да, вы правы, спасибо Я не поймал его перед тем, как его попросили) – metalink

Смежные вопросы