2015-04-14 2 views
1

Это то, что я делаю сейчасКак добавить элементы в Spinner?

Spinner AddressTypeSpinner = FindViewById<Spinner>(Resource.Id.spinner1); 


ArrayAdapter spinnerArrayAdapter = new ArrayAdapter (this, Android.Resource.Layout.SimpleSpinnerItem, new ProfileAddressTypes[] 
{ 

    for (var i = 0; i < AddressObject.Count; i++) 
    { 
     new ProfileAddressTypes (AddressObject[i].id, AddressObject[i].name); 
    } 
}); 

AddressTypeSpinner.Adapter = spinnerArrayAdapter; 

Эта лань не работает он говорит, не могу поставить для внутри массива адаптер

я не имею ни малейшего представления о том, как это сделать кого-нибудь есть идеи?

ответ

0

попробовать это:

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item,mArrayListspinner); 
     spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     AddressTypeSpinner.setAdapter(spinnerArrayAdapter); 

здесь mArrayListspinner ваша строка массива.

0
ProfileAddressTypes[] mList = new ProfileAddressTypes[size]; 

for (int i = 0; i < size; i++) { 
    mList[i]= new ProfileAddressTypes (AddressObject[i].id, AddressObject[i].name);   
} 

ArrayAdapter spinnerArrayAdapter = new ArrayAdapter (this, R.id_from_your_layout_of_that_activity_or_fragment, mList); 
yourSpinner.setAdapter(spinnerArrayAdapter); 

Надеется, что это помогает :)

0
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter (this, Android.Resource.Layout.SimpleSpinnerItem, GetAdapterData()); 

public ProfileAddressTypes[] GetAdapterData() 
{ 
    var adapterData = new ProfileAddressTypes[AddressObject.Count]; 

    for (var i = 0; i < AddressObject.Count; i++) 
    { 
     adapterData[i] = new ProfileAddressTypes (AddressObject[i].id, AddressObject[i].name); 
    } 
    return adapterData; 
} 

Или с помощью List<T> вместо вызова и ToArray() в конце:

public ProfileAddressTypes[] GetAdapterData() 
{ 
     var adapterData = new List<ProfileAddressTypes>(); 

     for (var i = 0; i < AddressObject.Count; i++) 
     { 
      adapterData.Add(new ProfileAddressTypes (AddressObject[i].id, AddressObject[i].name)); 
     } 
     return adapterData.ToArray(); 
} 
0

Вы должны пройти в ArrayAdapter конструкторе не массив, а объект, который реализует интерфейс IList, например List<ProfileAddressTypes>, кроме того, для корректного вывода вы должны переопределить метод ToString().

Вот мой код:

Spinner modelSelect = FindViewById<Spinner>(Resource.Id.modelSelect); 
List<Marks> models = (from i in DBHelper.GetInstance().Table<Marks>() where i.removed == false orderby i.name ascending select i).ToList(); 
modelSelect.Adapter = new ArrayAdapter<Marks>(this, Android.Resource.Layout.SimpleSpinnerItem, models); 

А часть класса Models:

public override string ToString() 
{ 
    return name; 
}