Android Studio - 学习笔记(JetPack) - 霜冷的秘密基地

Android Studio - 学习笔记(JetPack)

程序设计 0 评

前言:本文记录学习安卓开发笔记,用于快速查找功能

JetPack

JetPack:2018年谷歌I/O 发布了一系列辅助android开发者的实用工具,合称Jetpack。以帮助开发者构建出色的 Android 应用。
Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助你遵循最佳做法、让你摆脱编写样板代码的工作并简化复杂任务,以便你将精力集中放在所需的代码上。

常用代码

  • 获取控件对象 - 获取id为btn_one的Button控件
Button btn_one = FindViewById(R.id.btn_one);
  • 打印消息 - 在屏幕底部打印提示消息
Toast.makeText(MainActivity.this, "Hello Msg", Toast.LENGTH_SHORT).show();
  • 输出日志 - 输出onCreate事件触发的消息
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //输出onCreate日志
    Log.d(TAG, "onCreate: ");
}
  • 设置监听器 - 设置 btn_one的点击事件
btnLogin = findViewById(R.id.btn_login);
        
btnLogin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    Toast.makeText(MainActivity.this, "Login Msg", Toast.LENGTH_SHORT).show();
    }
});
  • 锁定竖直模式 - 锁定屏幕布局旋转不变
    在AndroidManifest.xml中的<activityandroid:name=".MainActivity"android:exported="true" [code]>[code]处添加
android:screenOrientation="portrait"
  • ViewModel对象获取
viewModel = new ViewModelProvider(this, new ViewModelProvider.AndroidViewModelFactory(getApplication())).get(MyViewModel.class);
  • LiveViewModel的class创建
private MutableLiveData<Integer> LikedNumber;

    public MutableLiveData<Integer> getLikedNumber(){
        if(LikedNumber == null){    //对象为空时,建立对象并设定初始值为0
            LikedNumber = new MutableLiveData<>();
            LikedNumber.setValue(0);
        }
        return LikedNumber;         //返回给监视器使用
    }

    //UI data
    public void addLikedNumber(int n){
        LikedNumber.setValue(LikedNumber.getValue() + n);   //现在的值加上传入的值
    }
  • LiveViewModel的getLikedNumber使用 - 自动刷新屏幕,设定LikedNumber.getValue()的值到TextView
viewModel.getLikedNumber().observe(this, new Observer<Integer>() {
    @Override
    public void onChanged(Integer integer) {
        textView.setText(String.valueOf(integer));
        }
});
  • binding - 控件管理器
//1.开启databinding | build.gradle -> android -> defaultConfig
dataBinding {
    enabled true
}
//2.xml布局文件 | 在xml中,选中根布局,按住Alt+回车,点击“Convert to data binding layout”,就可以生成databinding需要的布局规则

//3.实例化对象 ActivityMainBinding
ActivityMainBinding binding;

//4.绑定xml布局文件
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

//5.使用
binding.id;
  • xml布局文件下简化Contrller代码
<data>
        <variable
            name="data"
            type="com.example.databinding.MyViewModel" />
</data>

<TextView android:text="@{String.valueOf(data.number)}"/>
<Button android:onClick="@{()->data.addNumber(1)}"/>

对于上方简化更新数据和button的onClick需要在Contrller[MainActivity.java]中添加设定数据和观察者刷新数据

binding.setData(myViewModel);
binding.setLifecycleOwner(this);
AndroidStudio 连接不上雷电模拟器
快来做第一个评论的人吧~
0:00