
iTEYE
17.02.2018
13:57:49
В чём-то другом.
Пока решил в ActivityBase сделать var mContext: Context? = null
А в классах наследниках в onCreate делаю this.mContext = applicationContext as Context

Quantum Harmonizer
17.02.2018
13:58:22

iTEYE
17.02.2018
14:00:58
трейс указывает именно на Toast.makeText(this, msg, Toast.LENGTH_LONG).show()

Google

Quantum Harmonizer
17.02.2018
14:01:53

iTEYE
17.02.2018
14:04:05
https://pastebin.com/gvmEYhdu

Quantum Harmonizer
17.02.2018
14:05:27

iTEYE
17.02.2018
14:05:49
именно. но там не null а this
https://pastebin.com/LvETmvGc

Quantum Harmonizer
17.02.2018
14:32:37

iTEYE
17.02.2018
14:50:27
так строка это аргумет который я передаю в метод.
fun showToast(msg: String) {
Toast.makeText(this, msg, Toast.LENGTH_LONG).show()
}
showToast("Blah blah blah...")
короче из-за того что экземпляр класса создается вот так
val presenterAuthEmail = PresenterAuthEmail()
а не
val intent = Intent(this, ActivityAuthChoose::class.java).apply {} startActivity(intent)
возникает ошибка при выхове метода.
ну всмысле не через Intent.
но ведь PresenterAuthEmail у меня не должен создаваться через Intent. В этом нет смысла... Видимо придется сходить в чат по архитектуре.

Quantum Harmonizer
17.02.2018
14:55:00
Вижу здесь несвязный набор слов.
Рано лезть в архитектуру и в андроид, не разобравшись, как работать со стектрейсами.

iTEYE
17.02.2018
14:58:24
open class ActivityBase: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
fun showToast(msg: String) {
Toast.makeText(this, msg, Toast.LENGTH_LONG).show()
// тут возникает ошибка:
// Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
}
}
open class ActivityApp: ActivityBase() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_base)
val testClass = TestClass()
testClass.letsShow()
}
}
class TestClass: ActivityBase() {
fun letsShow(){
showToast("Blah!!!")
}
}

Google

Quantum Harmonizer
17.02.2018
14:59:21

iTEYE
17.02.2018
15:01:17
А кто должен создавать активити?

Quantum Harmonizer
17.02.2018
15:02:34
Почему?
Потому что кроме new фреймворк делает ещё кучу разных телодвижений, включая использование приватных API.

iTEYE
17.02.2018
15:05:34
В примере выше в роди презентера выступает TestClass

Quantum Harmonizer
17.02.2018
15:15:37

iTEYE
17.02.2018
15:16:27
Так вот как мне связать презентер со вью?

Quantum Harmonizer
17.02.2018
15:28:36

iTEYE
17.02.2018
15:30:09

Quantum Harmonizer
17.02.2018
15:31:51

iTEYE
17.02.2018
15:34:17

Quantum Harmonizer
17.02.2018
15:34:34

iTEYE
17.02.2018
15:35:22
Да, например.
ну неплохо было бы понять а потом уже использовать простые решения imho.

Quantum Harmonizer
17.02.2018
15:35:43
Понять Android, прочувствовать Kotlin.

iTEYE
18.02.2018
19:56:43
var resultIs = arrayOf("error","Default statement")
fAuth?.createUserWithEmailAndPassword(email, password)?.addOnCompleteListener({ task ->
if (task.isSuccessful) {
resultIs = arrayOf("success", "User registered!")
} else {
resultIs = arrayOf("error", "User registration failure!")
}
})
resultIs внутри этого замыкания не переопределяется. читал доки но что-то неодупляю с областями видимости. подскажите плиз.
Я понял, оно асинхронно.

Quantum Harmonizer
18.02.2018
20:09:02

Google

iTEYE
18.02.2018
20:09:51

Quantum Harmonizer
18.02.2018
20:11:13

iTEYE
18.02.2018
20:11:47
если не считать ? то это пример из доков по firebase

Quantum Harmonizer
18.02.2018
20:13:13

iTEYE
18.02.2018
20:13:39
Там примеры на java
https://firebase.google.com/docs/auth/android/password-auth

Quantum Harmonizer
18.02.2018
20:14:51

iTEYE
18.02.2018
20:15:56
Что ты имеешь ввиду под "мутирования захваченного массива"?

Quantum Harmonizer
18.02.2018
20:17:12

iTEYE
18.02.2018
20:19:00
Как я понял addOnCompleteListener выполняется в отдельном контексте и даже если значение переменной и меняется то на return за лямбдой это не влияет никак, т.к. выход из основной функции происходит раньше чем внутри лямбды меняется значение переменной.

Quantum Harmonizer
18.02.2018
20:20:10

iTEYE
18.02.2018
20:22:44
с точки зрения архитектуры как тогда получить данные из замыкания? подписываться на изменение данных?

Quantum Harmonizer
18.02.2018
20:27:04

iTEYE
18.02.2018
20:28:48
Но получается что я из repository (структуры которая занимается обменом данными с источником данных) изменяю view, а это значит что мне надо прокидывать активити в repository
и получается что я отхожу от MVP

stas
18.02.2018
20:30:58

Quantum Harmonizer
18.02.2018
20:31:01

iTEYE
18.02.2018
20:33:06

Quantum Harmonizer
18.02.2018
20:34:22

iTEYE
18.02.2018
20:34:50

Google

Quantum Harmonizer
18.02.2018
20:35:08

Ruslan
19.02.2018
04:58:52
Всем привет! Знатоки mvvm, подскажите пожалуйста, как из viewmodel обратиться к view? Viewmodel же не может иметь ссылку на view. Вот в mvp ,например, можно просто вызвать метод из интерфейса view, ну там прогресс бар показать или ещё что

whalemare
19.02.2018
05:03:25

Alexander
19.02.2018
05:35:01

Ruslan
19.02.2018
05:40:25
Спасибо, кажется понял

stas
20.02.2018
20:29:26
а как модуль взять?))))?
все) узнал))
Int.let{ Math.abc(it) }
Может кому нужно будет)

Quantum Harmonizer
20.02.2018
20:33:54
abs только