文章目录
p1 基础配置
配置本地gradle:
gradle下载地址
在project文件夹中的
gradle文件夹中的
wrapper中的
gradle.properties
distributionUrl=file:///D:/gradle-6.5-all.zip
ps:路径不能有中文
###################################无情分割线###################################
p9 Bundle
protected void onSaveInstancestate(Bundle OutState) {
@Override
super.onSaveInstanceState(outState);
outState.putString("KEY",textView.getText().toString());
}
前面再添加
if (savedInstaceState!=null){
String s = savedInstanceState.getString("KEY");
textView.setText(s);
}
###################################无情分割线###################################
p11 Livedata
1、在自建类的时候要手动添加extends ViewModel
public class MyViewModel extends ViewModel {
private MutableLiveData<Integer> number;
public MutableLiveData<Integer> getNumber() {
if (number == null) {
number = new MutableLiveData<>();
number.setValue(0);
}//判断是否为空,防止空指针
return number;
}
public void add1() {
number.setValue(number.getValue() +1);
}
}
2、ViewModelProviders.of已弃用,改为:
myViewModel = new ViewModelProvider(this,
new ViewModelProvider.NewInstanceFactory())
.get(MyViewModel.class);
###################################无情分割线###################################
p12 dataBinding
一、添加binding
1、在build.gradle(Model)
andriod{
dataBinding{enabled = true}
}
2、在activity_main.xml中首行输入alt+ente,点击第一个提示,添加layout。
3、在gradle.properties中添加
android.databinding.enableV2=true
二、主代码
1、MainActivity.Java中添加
Binding = DataBindingUtil.setContentView(this,
R.layout.activity_main);
代替setContentView(R.layout.activity_main);
2、其他:
Binding.setData(myViewModel);//赋值操作,代替setValue
Binding.setLifecycleOwner(this);//(翻转屏幕)保存数据防止丢失
三、activity_main.xml
1、data
<data>
<variable name="data"
type="com.example.databinding.MyViewModel"
/>
</data>
2、@{这里输入字符串}
android:text="@{String.valueOf(data.number)}"
3、()-> 调用函数
android:onClick="@{()->data.add() }"
###################################无情分割线###################################
p13 小实例:篮球计分
一、界面
1、guideline使用;
2、通过设置变量,调整构件大小等;
3、规范命名构件;
#4、横屏界面调整;
#5、多语言支持;
二、添加类ViewModel
1、构建两个private计分量;
2、构建函数;
ps:windows 通过alt + 鼠标左键 可以进行块选择
三、设置主函数
除声明dataBinding以及MyViewModel,就四句:
1、创建Binding对象;
2、myViewModel与ViewModelProvider进行绑定;
3、给Binding一个值即myViewModel;
4、防止横屏destroy时数据丢失;
Binding = DataBindingUtil.setContentView(this,R.layout.activity_main);
myViewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(MyViewModel.class);
Binding.setData(myViewModel);
Binding.setLifecycleOwner(this);
四、主.xml
1、补充<data>;
2、更改text和onClick;
五、测试
1、测试所有按键功能;
2、横屏查看;
3、更改语言;
###################################无情分割线###################################