Im работает над проектом Android на Xamarin, у меня была главная страница, и я хочу ListViewItemOnНажмите каждое меню. Основное действие и активность клик-меню используют те же данные из Entry. Вопрос в том, должен ли я создавать разные адаптеры для каждой характеристики?Нужно ли создавать различные адаптеры для каждой активности на Xamarin?
ответ
Непонятный вопрос. Тем не менее я хотел бы дать вам несколько рекомендаций по использованию адаптеров.
В основном, адаптеры помогают осуществлять привязку данных к пользовательскому интерфейсу. Они унаследованы от класса BaseAdaptor
. Адаптер - это предмет, не относящийся к каждой вещи. Один адаптер может использовать сервер для многих видов деятельности. Например, если у вас есть адаптер для чтения электронных писем, который называется EmailAdapter
, вы можете использовать его: MainActivity.cs
, а также любые другие виды деятельности.
Вы должны знать о реализации абстрактных методов из BaseAdapter, когда вы реализуете GetView
, вы должны предоставить представление, для которого вы определяете его как макет, который может быть использован для инициирования ListViews в любой деятельности.
Например: У вас есть 2 мероприятия MainActivity.cs
и MailActivity.cs
вам нужно показывать электронные письма в обоих действиях, исходящих из одного источника. Так создать макет под названием EmailItem.xml
, который будет похож на
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/ContactImage"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="5dp" />
<TextView
android:id="@+id/ContactName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_marginLeft="5dp" />
</LinearLayout>
Создать адаптер под названием EmailAdapter
public class EmailAdapter : BaseAdapter
{
List<Contact> _contactList;
Activity _activity;
public ContactsAdapter (Activity activity)
{
_activity = activity;
FillEmail();
}
void FillEmail()
{
//Logic to fill email
}
class Email
{
public long Id { get; set; }
public string DisplayName{ get; set; }
}
}
и при реализации BaseAdapter
вы должны реализовать GetView
, где вы должны определить вид и вернуть его , Таким образом, правопреемник вид на макет вы создали
var view = convertView ?? _activity.LayoutInflater.Inflate (
Resource.Layout.EmailItem, parent, false);
Теперь в вашем OnCreate()
каждой деятельности называет
var emailAdapter = new EmailAdapter (this);
var emailView = FindViewById<ListView> (Resource.Id.EmailView);
emailView.Adapter = contactsAdapter;
Здесь EmailView
может быть макетом в деятельность.
Ничего себе, я действительно просветил меня, но я почти там. Итак, скажем, у меня есть 2 действия MainActivity.cs и Next.cs, у меня есть getview для MainActivity.cs внутри адаптера, а также макета MainActivity.axml, я уже создал Next.cs и Next.axml, основываясь на том, что вы предложили мне создать getview для Next.cs внутри адаптера, у меня уже есть то же, что и MainActivity.cs? – Omnislash
'GetView' должен быть реализован для« EmailAdapter », потому что его абстрактный метод« BaseAdapter ». «GetView» - это «за адаптер». Не вещь «для каждой деятельности». –
Хорошо, в моем случае у меня есть это datacollection, могу ли я иметь более одного адаптера (хотя оба они связывают одно и то же datacollection)? потому что, согласно вам, «GetView» предназначен только для одного адаптера, вызывает его «Per Adapter», в то время как я пытаюсь показать разный макет/интерфейс для «MainActivity.cs» и «MailActivity.cs» // И если я могу, возможно ли иметь 2 'baseadaptor' в коде или один из них не может его иметь? – Omnislash
- 1. Xamarin - Различные виды для каждой платформы
- 2. Нужно ли создавать класс для каждой таблицы в EF
- 3. Нужно ли создавать класс для каждой игровой формы?
- 4. Нужно ли создавать определенные пользователем исключения для каждой ошибки
- 5. Нужно ли создавать отдельные пакеты OSGi для каждой банки
- 6. Различные адаптеры в элементах recyclerview
- 7. Нужно ли создавать эскизы для приложения WinRT
- 8. Нужен ли нам класс активности для каждой страницы?
- 9. Весенняя интеграция - Как программно создавать адаптеры?
- 10. Нужно ли создавать несколько изображений
- 11. Нужно ли создавать индекс для MySQL?
- 12. Нужно ли создавать индексы для внешних ключей?
- 13. Нужно ли мне создавать профилирование?
- 14. Нужно ли мне создавать TinyThread ++?
- 15. Нужно ли создавать потокобезопасную переменную?
- 16. Нужно ли иметь модель для каждой таблицы?
- 17. Нужно ли @FXML для каждой декларации?
- 18. Различные семена для каждой миграции
- 19. Возможно ли установить различные уровни яркости для каждой части экрана/активности?
- 20. Нужно создавать алфавиты randoms при каждой загрузке страницы времени
- 21. Различные подзаголовки для каждой страницы
- 22. Зачем нам нужно создавать службу для Android
- 23. Xamarin андроид различные макеты для activationbar вкладок
- 24. Должен ли я создавать WCF-клиент для каждой используемой машины?
- 25. WCF proxy: Нужно ли мне создавать новый и другой прокси для каждой привязки?
- 26. Индикатор активности циркуляции Xamarin для UWP
- 27. Различные ограничения для каждой строки UILabel
- 28. Нужно ли создавать фрагменты в таком виде?
- 29. мне нужно для Windows 10 для Xamarin
- 30. Нужно ли заднему концу создавать RESTful API?
Не можете понять ваш вопрос, не могли бы вы предоставить немного больше информации, чтобы быть в состоянии помочь вам? – apineda