Как я могу написать средство выбора чисел, которое будет обновлять объект и отображать результаты?

В рамках обучения кодированию приложений для Android я пишу приложение для отслеживания некоторых чисел для настольной игры. Как показывает мой скриншот, у меня есть несколько значений с кнопками минус/плюс. Корабль (реализованный как класс корабля) имеет 6 значений и, следовательно, 12 кнопок и 6 текстовых представлений.

По ходу игры Числа будут меняться, и Пользователь должен иметь возможность нажимать кнопки -/+, чтобы отразить это.

Скриншот

Первоначально я написал отдельный onClickListener для каждой кнопки, обновил значение доставки и установил для TextView новое значение доставки.

Затем я решил объединить это в один OnClickListener, прикрепленный к каждой кнопке, и оператор Switch/Case с случаем для каждой кнопки, который обновлял нажатое значение доставки, а затем повторно отображал значения.

В другой попытке консолидировать свой код я написал класс для реализации средства выбора номера (на основе этого кода: https://stackoverflow.com/a/56061379/3902474 )

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

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

Есть ли способ установить стоимость корабля с помощью этого средства выбора чисел, сохраняя при этом средство выбора чисел достаточно универсальным, чтобы использовать его для других значений/классов?


person Black Spike    schedule 13.11.2019    source источник
comment
Разве SharedPreferences не поможет вам? вы можете присвоить значения SP в своем средстве выбора номеров и прочитать их при настройке класса корабля, использование большего количества операторов switch/case позволит вам сделать то же самое для других целей, которые вы имеете в виду.   -  person Stitches S    schedule 14.11.2019
comment
Класс корабля устанавливается прямо в начале MainActivity. Мне нужно внести в него многочисленные изменения. Средство выбора номеров знает, когда я нажал -/+, но как мне передать эту информацию в MainActivity/ShipClass? Как Main/Ship узнает, что нужно обновить себя из SharedPreferences?   -  person Black Spike    schedule 14.11.2019