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里面