У меня есть два действия A и A в одном приложении, и они должны иметь возможность вызывать методы друг для друга.A должен связаться с B в начале (возможно, см. «Код» ниже).
B вызовет много методов для A (это означает, что я не могу использовать метод startActivityForResult для связи, потому что это закроет B(Действие B - это клиент и сервер Bluetooth, потому что это одноранговое приложение)).Я использую startActivityForResult, чтобы запустить B для получения большего количества сигнала уничтожения, чем чего бы то ни было.
Деятельность A использует SupportMapFragment, а операция B не может быть фрагментом, потому что я хочу иметь возможность переключаться с B на A изатем никогда больше не используйте B.
Первоначально я начал с одного занятия и попытался переключаться между представлениями, используя ViewFlipper, и просто вызывал setContentView (R.layout.my_layout_A) или setContentView (R.layout.my_layout_B).Фрагмент, конечно, вызвал много проблем для обоих.
Использование фрагментов приводило к путанице.SupportMapFragment - это код карты Google, которая является фрагментом.
Когда я щелкаю пункт меню внутри MapsActivity (мероприятие A), я хотел бы иметь возможность запустить myBluetoothActivity (занятие B) сссылка на MapsActivity (действие A) ИЛИ запустите myBluetoothActivity, а затем сможете установить ссылку на вызывающего абонента внутри myBluetoothActivity (но для этого параметра потребуется наличие ссылки на BluetoothActivity внутри MapsActivity или наличие какого-либо способа получения запущенной активностииз намерения).
//the following code is in Kotlin, but this can easily be converted over to java:
//option A: (pass it inside of the constructor)
var mbta:myBluetoothActivity = myBluetoothActivity(this)
//line for intent that I am unsure of
//intent so that I can start the activity with the pointer to the caller already passed into the new activity
startActivity(mbta)
//option B: (set this reference after obtaining a reference from intent):
var mintent:Intent = Intent(this.applicationContext, myBluetoothActivity::class.java)
startActivity(mintent)
//obtain the reference to the BluetoothActivity from the intent (NOT SURE HOW TO DO THIS???)
mbta.setCallerReference(this)
Как я могу выполнить эту связь между двумя действиями посредством ссылки между этими двумя действиями?Должен ли я использовать интерфейс для общения?Если я должен его использовать (что я и пытался), как я должен?
Другими словами, я пытаюсь получить доступ к активности вызывающего абонента (действие A) из (действия B) напрямую через ссылку на действие Aвнутри B ИЛИ пытаясь получить ссылку на B из намерения, с которого она началась в Деятельности A. Я пытаюсь получить ссылку на нее, поэтому я могу использовать ее для связи / вызова метода / переменной-члена и в целях изменения пользовательского интерфейса.
ПРИМЕЧАНИЯ: 1. BluetoothActivity и MapsActivity НЕ Сериализуемы.Я попытался сериализовать его, а затем добавить в дополнительный пакет в Intent, и он просто упал, сказав, что сериализовать его невозможно из-за BroadCastReciever.Поскольку это также касается WIFI.Который я очень планирую выделить для использования с BluetoothActivity в будущем выпуске.
Я также предполагаю, что действие B. никогда не будет запущено чем-либо, кроме моего класса MapsActivity.
Я также новичок в Kotlin, но я знаю Java.
Когда я пытался использовать интерфейс, я вызвал ошибку StackOverflow, и я понятия не имею, почему.
Я прочитал документацию дляСодержание на сайте.
Я провел здесь некоторое исследование, которое дало мне эти идеи выше.Я не уверен, как их реализовать.