Я пытался передать две переменные из моего MainActivity.kt в свой HomeActivity.kt; isRunning (Boolean) и time_in_milli_seconds (Long), которые оба объявлены в MainActivity.
Я прочитал бесчисленное количество руководств и застрял на этом несколько дней. Я знаю, что это всего лишь несколько строк кода, но ни один из десятков примеров, которые я видел в Интернете (через YT или SE), не касался конкретной проблемы, с которой я столкнулся. Мои извинения, если это повторяющийся пост!
Вот мой код:
class MainActivity : AppCompatActivity() {
var isRunning: Boolean = false;
var time_in_milli_seconds = 1000L
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
...
//perform a bunch of other stuff where isRunning and time_in_milli_seconds have values that are not null
...
val intent = Intent(this@MainActivity, HomeActivity::class.java)
intent.putExtra("isRunningHome", isRunning)
intent.putExtra("lastKnownTimeLong", time_in_milli_seconds)
}}
и во втором действии:
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
var intent = intent
var var2 = intent.getBooleanExtra("isRunningHome")
var var1 = intent.getLongExtra("lastKnownTimeLong")
}}
Но мой HomeActivity не будет компилироваться, поскольку каждая строка var1 и var2 выдает ошибку " для параметра DefaultValue не передано значение ". После некоторого дополнительного тестирования Kotlin, похоже, передает значения NULL для обеих переменных, но я, хоть убей, не могу понять почему - это вопрос на миллион долларов. В настоящее время программа даже не компилируется.
Я пробовал:
1) установка значений isRunning и time_in_milli_seconds в текстовый параметр текстовых представлений, а затем применение намерения к их соответствующим текстовым параметрам - результат - показал значение NULL после того, как «передано» в HomeActivity.
2) Преобразование длинных и логических переменных в строки и передача их в виде строк, затем использование getStringExtra в HomeActivity - это сработало для переменной Long, но не для логической. Это также кажется морально неправильным и очень плохой техникой программирования.
3) Изменение места размещения и извлечения намерений (внутри или вне OnCreate, внутри и снаружи функций и т. Д. c.). Это не повлияло на мой результат.
Любая помощь будет принята с благодарностью !!!!