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
Что ты имеешь ввиду под "мутирования захваченного массива"?
Admin
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
Google
iTEYE
18.02.2018
20:34:50
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 только