2017-12-11 27 views
0

ViewModel 클래스와 이에 대한 Model 클래스가 있습니다. Android 데이터 바인딩 및 뷰 모델이 작동하지 않습니다.

class WorksheetViewModel { 

    private Worksheet worksheet; 

    public Worksheet getWorksheet() { 
     return worksheet; 
    } 

    public void setWorksheet(Worksheet worksheet) { 
     this.worksheet = worksheet; 
     if (worksheet != null) showButtons(); 

     Logger.E(worksheet.getShort_text()); 
    } 

여기에 노력하고 있습니다 : Logger.E (worksheet.getShort_text());

내 XML

<import type="android.view.View" /> 

<variable 
    name="viewModel" 
    type="viewmodels.WorksheetViewModel" /> 

에서 ..

와 텍스트 뷰와 :

android:text="@{viewModel.worksheet.short_text + `?`}" 

내 probleme가,보기 Model.worksheet.short_text가 항상 null입니다. 왜? 또한

binding.setViewModel(new WorksheetViewModel()); 
binding.executePendingBindings(); 

내가 가진 모든

Worksheet extends BaseObservable 

내 워크 시트

+0

시도 안드로이드 : 텍스트 = "@ {? viewModel.worksheet.getShort_text +''}" –

답변

2

문제 방금도 Worksheet 개체가 binding.setViewModel(new WorksheetViewModel());하지만 WorksheerViewModel 바인딩에 뷰 모델을 설정하는 것입니다에서

@Bindable 
    public String getShort_text() { 
     return short_text; 
    } 

, 그것은 비어 있습니다.

그래서이 있어야한다

WorksheetViewModel viewModel = new WorksheetViewModel(); 
viewModel.setWorksheet(new WorkSheet('short text value')) 
binding.setViewModel(viewModel);