Я собираюсь задать несколько вопросов, если это не разрешено, пожалуйста, дайте мне знать, я удалю их, главный вопрос в том, что ...
В каких случаях ViewModel
может привести к утечке или, возможно, игнорировать использование MVVM? (Пожалуйста, порекомендуйте надежные проекты MVVM для рассмотрения, если это возможно)
import ....View; //Question 1
import ....Activity;
public class MyViewModel extends ViewModel {
// Question 2
public void viewClicked(View v){
((TextView)v).setText("Clicked")
}
}
В некоторых layout.xml
<layout>
<import "android.app.Activity"/> //Question 3
<variable
name="viewModel"
type="MyViewModel"/>
<TextView // Question 4
....
....
android:onClick='@{viewModel::viewClicked}'/>
<Button //Question 5
android:id="@+id/btnBack"
....
....
android:onClick='@{() -> ((Activity)btnBack.getContext()).finish()}'/>
</layout>
Вопрос 1:
Вызывают ли операторы оператора Activity утечку памяти?
Вопрос 2:
Почему метод типа viewClicked
не рекомендуется в ViewModel, когда он помогает в обработке изображений.
Вопросы 2.1:
Это знание Java 101, но все же. Делает ли метод ViewModel с аргументом View в качестве аргумента, чтобы весь ViewModel содержал ссылку на View / Context, поскольку люди более агрессивны по отношению к этим типам методов .?
Вопрос 3:
Может ли импорт Activity в XML привязки данных вызвать проблемы?
Вопрос 4:
Если не в viewmodel, где должна быть размещена логика щелчка в привязке данных в MVVM?
Вопрос 5:
Если вы сделаете это (см. Button onClick), вы можете просто вызывать метод finish прямо из XML, когда знаете, что кнопка «назад» всегда прерывает активность.