Как я могу получить представление от другой деятельности? - PullRequest
0 голосов
/ 11 июня 2019

Допустим, у меня есть два занятия / занятия. MainActivity и SecondActivity .Для каждого из этих действий у меня есть отдельные файлы XML.В SecondActivity у меня есть ListView с идентификатором listview.

Как я могу получить ListView из SecondActivity в MainActivity ?

Я попробовал просто и понятно (в MainActivity.java):

ListView listview = (ListView) findViewById(R.id.listview);

Но это приводит к сбою моего приложения, когда я пытаюсь установить на него адаптер (nullPointerException).Я попытался разместить его прямо внутри моего класса и внутри метода onCreate.И то и другое вызывает сбой.

Строка, которая вызывает сбой, выглядит следующим образом:

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
listview.setAdapter(adapter); //crash (nullpointerexception pointing to nullobject)

Что я хочу сделать, это получить этот ListView и использовать объект "listview" для добавления элементов всписок в моем MainActivity.

1 Ответ

0 голосов
/ 11 июня 2019

В Android (за исключением) вы не можете запускать более одного занятия одновременно.У вас может быть несколько Фрагментов, но в одно время показывается одно действие (хорошо, это больше не на 100% верно, но для всех намерений и целей это все еще так).

Что вы?Попытка сделать это считается крайне плохой практикой в ​​Android (и iOS для чего стоит).

Что вы можете / должны делать?

Ваши требования, по-видимому, представляют собой какую-то форму: у меня есть список предметов, а также есть еще одно занятие, в которое я хочу добавить или удалить вещи изуказанный список.

Это хорошо, но вам не нужны «два действия», чтобы сделать это.

Есть одно действие, чтобы показать список, и когда вы хотите добавить содержимое, либо запустите другое действие, чтобы показать пользовательский интерфейс «редактировать / добавить», или использовать фрагменты (один фрагмент будет иметь список,другой имел бы пользовательский интерфейс для редактирования списка).

Где находятся данные во всем этом?

Хранится в ТРЕТЬЕМ месте (назовем его «YourListRepository»), который является классом, в котором:

  1. В «Списке» вы просто скажете: «Репозиторий, дайте мне последний список!»
  2. На экране «Редактирования» вы скажете: «Репозиторий, дайтемне пункт "N" из списка.И тогда вы скажете: Репозиторий, вот обновленный элемент «N», обновите его.

Переход к 1 (для отображения обновленного списка) выполняется автоматически, поскольку он запрашивает «последний список».

Где узнать больше?

Учитывая длительность вопроса, который вы разместили, кажется, что вы относительно новичок в разработке для Android, и поэтому я советую вам потратить час вашего времени, читая Основы приложений из официальной документации Google.

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