В C#, когда я это делаю
'ArrayAdapter myadaptername;
myAdaptername = new ArrayAdapter (this.Context, Android.Resource.Layout.SimpleListItem1, MyList);
int x = myadaptername.GetPosition («Лондон»); '
Где MyList - это список городов, содержащих Лондон, скажем, на полпути.
Я получаю x = -1
Может кто-нибудь, пожалуйста, скажите мне, где я ошибаюсь.
GetPosition () возвращает позицию определенного объекта в массиве. Вы передаете другой экземпляр строки «Лондон», которая не совпадает с объектом, содержащимся в массиве.
@Jason Мне трудно поверить, что две идентичные строки не будут оцениваться как истинные при сравнении ... Из-за интернирования строк это не должно быть двух отдельных экземпляров. В противном случае было бы очень сложно сравнивать строки.
@RonBeyer Привет, Рон, я исправил код, есть мысли?
Пожалуйста, попробуйте добавить тип вашего товара. Например:
ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, values);
Не зная, что такое ваш «адаптер», как он объявлен, инициализирован и т. д., Может быть сложно получить ответ на этот вопрос. «Адаптер» - довольно общий термин.