된 이&바인딩 및 컨텍스트

0

질문

내 동료했습니다. 우리는 번역하는 응용 프로그램을된 이+구속력이 있습니다. 필요가 있었을 시작하는 대화 상자에서 조각입니다. 나는 그것을 다음과 같다:

에 조각:

fragmentBinding.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
       // there's a bunch of code here 
     alertDialog.show();
}});

동료에게도 요구해야 하는 이렇게하려면:

Xml 파일에 우리가 쓰는 다음과 같다:

android:onClick="@{v -> viewModel.showDialog(context)}"

에서 뷰 모델:

fun showDialog(context: Context){
     AlertDialog.Builder builder = new AlertDialog.Builder(context);
       // there's a bunch of code here
     alertDialog.show();
}

저에게 알려주세요,하나는 올바른?

android binding mvvm
2021-11-21 22:26:10
1

최고의 응답

2

뷰 모델에 대한 책임 준비를 위한 데이터 UI 에서 언급된 안드로이드 개발자들.

따라서 하나의 제일 연습은 결코 거래 UI 요소에서 뷰 모델. 지만 코드는 아직도 실행하는 경우 우리는 전달 Context 뷰 모델할 수 있도록 표시 alertDialog수도 있습니다는 것을 알아야 합 활동/조각의 시점이 다를 수명 주기,당신이 필요하므로 주의해야 할 때 전달 Context 뷰 모델

더 현명한 방법으로 이를 처리하기 위한 것,뷰 모델을 유지하는 깃발을 가지고 준비하는 데 필요한 메시지를 사용하여 LiveData 또는 유사한 무언가는,그래서 활동/조각을 관찰하고 실제로 구축하고를 표시 AlertDialog 에 의해 얻어 메시지에서,뷰 모델 통 뷰 모델 때에는 대화상자가 표시/클릭하면,그래서 뷰 모델을 처리하는 후속 사업 논리입니다.

에 대한 특정한 경우,나를 떠날 것이다 AlertDialog 코드에서 활동/조각,하는 동안 필요한 경우 내에서 데이터를 검색 뷰 모델.

2021-11-21 22:45:45

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................