Android Studio

Room-数据库

结构图

一个sqlite数据库管理插件

需要添加的依赖

dependencies {
  def room_version = "2.2.6"

  implementation "androidx.room:room-runtime:$room_version"
  annotationProcessor "androidx.room:room-compiler:$room_version"

  // optional - RxJava2 support for Room
  implementation "androidx.room:room-rxjava2:$room_version"

  // optional - RxJava3 support for Room
  implementation "androidx.room:room-rxjava3:$room_version"

  // optional - Guava support for Room, including Optional and ListenableFuture
  implementation "androidx.room:room-guava:$room_version"

  // optional - Test helpers
  testImplementation "androidx.room:room-testing:$room_version"
}

 

 

      wordViewModel= new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(WordViewModel.class);

 

Navigation

设置可以水平滚动

设置app横竖屏不同样式

设置语言自适应

设置DataBinding

Android10

Android11

 

设置imageButton的向下兼容

小工具

对一列的值进行同时修改

架构整理

 

笔记

  buildFeatures{
            dataBinding = true
        }

   testImplementation 'junit:junit:4.13.2'
   implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.0'

 如果在一个class中的函数或是变量不加修饰词,它默认整个包可见(com.example.a16)

myViewModel = new ViewModelProvider(this, new SavedStateViewModelFactory(getApplication(),this)).get(MyViewModel.class);
myViewModel = new ViewModelProvider(this,new ViewModelProvider.NewInstanceFactory()).get(MyViewModel.class);

 一般来说程序的结束或者异常终止都会调用onPause()所以数据保存的设置再onPause()里面可以节约资源

消除警告?:

debug时用的提示信息

if(TextUtils.isEmpty(string))
{
    Toast.makeText(getActivity(),"请输入名字", Toast.LENGTH_SHORT).show();
      return;
}                

 

Navigation

用来搭建界面的

数据传递

方式一:直接设置arguments或者采用bundle

传输的方式二:采用ViewModel进行集中管理

 

 

 

 

动画设置

设置动画的时候,duration应该放到set里面

 

posted @ 2021-02-22 11:01  东坡肉肉君  阅读(37)  评论(0)    收藏  举报