1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| public class DataModel extends ViewModel { private int age=0; public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> </data>
<LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv_display" android:gravity="center" android:textColor="@color/black" android:layout_width="match_parent" android:layout_height="40dp"/> <Button android:id="@+id/bn_change" android:onClick="change" android:text="change" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:id="@+id/bn_rote" android:onClick="rote" android:text="rote" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> </layout>
public class ViewModelActivity extends AppCompatActivity { private ActivityViewModelBinding binding; private DataModel dataModel; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = DataBindingUtil.setContentView(this, R.layout.activity_view_model); dataModel = new ViewModelProvider(this).get(DataModel.class); Log.e("tyl","age="+ dataModel.getAge()); }
public void change(View view) { dataModel.setAge(dataModel.getAge()+1); binding.tvDisplay.setText(dataModel.getAge()+""); }
private Boolean isLand=false; public void rote(View view) { setScreenOrientation(isLand); } public void setScreenOrientation(boolean isLandScape){ if (isLandScape){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } isLand=!isLand; } }
|