MVVM模式跟之前的MVC或者MVP不一样 它是在布局的时候有很大区别
main布局
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" > <data> <variable name="user" type="demo04.com.mvvmstuday.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="@{user.username}" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="@{user.nickname}" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="@{String.valueOf(user.age)}" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </layout>
MainActivity
import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import demo04.com.mvvmstuday.databinding.ActivityMainBinding; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); User user = new User(); user.setAge(34); user.setUsername("zhangsan"); user.setNickname("张三"); binding.setUser(user); } }
User类
public class User { private String username; private String nickname; private int age; public User() { } public User(String username, String nickname, int age) { this.username = username; this.nickname = nickname; this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
这只是简单的实现赋值的小demo 如果想更深入的了解,还请去官网上查询