2021版本Android Studio jetpack B站longway777 小结(&基础设置)(更新)

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、更改语言;

###################################无情分割线###################################

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值