[JAVA] Verbindung zwischen ViewModel und XML

Zuallererst Aktivität

class ViewModelActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Obtain the ViewModel component.
        UserModel userModel = ViewModelProviders.of(getActivity())
                                                  .get(UserModel.class);

        // Inflate view and obtain an instance of the binding class.
        UserBinding binding = DataBindingUtil.setContentView(this, R.layout.user);

        // Assign the component to a property in the binding class.
        binding.viewmodel = userModel;
    }
}

Oben ist Aktivität

Als nächstes XML (Layout)


<CheckBox
    android:id="@+id/rememberMeCheckBox"
    android:checked="@{viewmodel.rememberMe}"
    android:onCheckedChanged="@{() -> viewmodel.rememberMeChanged()}" />

Und schließlich ViewModel

ViewModel


/**
 * A ViewModel that is also an Observable,
 * to be used with the Data Binding Library.
 */
class ObservableViewModel extends ViewModel implements Observable {
    private PropertyChangeRegistry callbacks = new PropertyChangeRegistry();

    @Override
    protected void addOnPropertyChangedCallback(
            Observable.OnPropertyChangedCallback callback) {
        callbacks.add(callback);
    }

    @Override
    protected void removeOnPropertyChangedCallback(
            Observable.OnPropertyChangedCallback callback) {
        callbacks.remove(callback);
    }

    /**
     * Notifies observers that all properties of this instance have changed.
     */
    void notifyChange() {
        callbacks.notifyCallbacks(this, 0, null);
    }

    /**
     * Notifies observers that a specific property has changed. The getter for the
     * property that changes should be marked with the @Bindable annotation to
     * generate a field in the BR class to be used as the fieldId parameter.
     *
     * @param fieldId The generated BR id for the Bindable field.
     */
    void notifyPropertyChanged(int fieldId) {
        callbacks.notifyCallbacks(this, fieldId, null);
    }
}

Das obige ist ViewModel XML ist ViewModel zugeordnet, das Aktivität und Flagment zugeordnet ist.

Recommended Posts

Verbindung zwischen ViewModel und XML
Wechseln Sie zwischen JDK 7 und JDK 8
Unterschied zwischen vh und%
Unterschied zwischen i ++ und ++ i
Unterschied zwischen Produkt und Variante
Unterschied zwischen redirect_to und render
[Java] Unterschied zwischen == und gleich
Unterschied zwischen redirect_to und render
Unterschied zwischen CUI und GUI
Unterschied zwischen Variablen und Instanzvariablen
Beziehung zwischen Controller und Ansicht
Unterschied zwischen Klasse und Instanz
Unterschied zwischen Bundle und Bundle-Installation
Beziehung zwischen Paket und Klasse
Unterschied zwischen ArrayList und LinkedList
Unterschied zwischen render und redirect_to
Unterschied zwischen List und ArrayList
Unterschiede zwischen IndexOutOfBoundsException und ArrayIndexOutOfBoundsException
Unterschied zwischen .bashrc und .bash_profile
Unterschied zwischen StringBuilder und StringBuffer
Unterschied zwischen render und redirect_to
[Ruby] Unterschied zwischen get und post
Unterschied zwischen Schnittstelle und abstrakter Klasse
Unterschied zwischen == Operator und Methode gleich
Gegenseitige Umwandlung zwischen Funktion und Verbraucher
Unterschiede zwischen "Anfänger" Java und Kotlin
[Java] Unterschied zwischen Hashmap und HashTable
[Terminal] Unterschied zwischen irb und pry
JavaServlet: Unterschied zwischen executeQuery und executeUpdate
[Ruby] Unterschied zwischen is_a? Und instance_of?
[Rails] Unterschied zwischen find und find_by
[JAVA] Unterschied zwischen Abstract und Interface
[Java] Beziehung zwischen H2DB und JDBC
Unterschied zwischen Thymeleaf @RestController und @Controller
Unterschied zwischen Stream Map und FlatMap
[Java] Unterschied zwischen Array und ArrayList
Unterschied zwischen primitivem Typ und Referenztyp
Unterschied zwischen string.getByte () und Hex.decodeHex (string.toCharaArray ())
Unterschiede zwischen Java und .NET Framework
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
[Rails] Unterschied zwischen redirect_to und Rendern
[Android] Unterschied zwischen finish () und return;