Android之练习MVVM+DataBinding框架模式(1),Android开发五年

再更深层次学习,可以使用LiveData+ViewModel

以下是采用MVVM框架的代码:


Account.java

public class Account {

String name;

int level;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getLevel() {

return level;

}

public void setLevel(int level) {

this.level = level;

}

}

MCallBack.java

public interface MCallback {

public void onSuccess(Account account);

public void onFailed();

}

MVVMActivity.java

public class MVVMActivity extends AppCompatActivity {

private ActivityMvvmBinding binding;

private MVVMViewModel mvvmViewModel;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

binding = DataBindingUtil.setContentView(this,R.layout.activity_mvvm);

mvvmViewModel = new MVVMViewModel(getApplication(),binding);

binding.setViewModel(mvvmViewModel); //初始化viewModel

}

}

MVVMModel.java

public class MVVMModel {

//模拟查询账号数据

public void getAccountData(String accountName, MCallback callback){

Random random = new Random();

boolean isSuccess = random.nextBoolean();

if(isSuccess){

Account account = new Account();

account.setName(accountName);

account.setLevel(100);

callback.onSuccess(account);

}else {

callback.onFailed();

}

}

}

MVVMViewModel.java

public class MVVMViewModel extends BaseObservable {

private ActivityMvvmBinding binding;

private MVVMModel mvvmModel;

private String Input;

private String result;

@Bindable

public String getResult() {

return result;

}

public void setResult(String result) {

this.result = result;

notifyPropertyChanged(com.example.mvvmdemo2.BR.result);

}

// 一般需要传入Application对象,方便在ViewModel中使用application

// 比如sharedpreferences需要使用

public MVVMViewModel(Application application, ActivityMvvmBinding binding) {

this.binding=binding;

mvvmModel = new MVVMModel();

}

public void getData(View view){

Input = binding.etAccount.getText().toString();

mvvmModel.getAccountData(Input, new MCallback() {

@Override

public void onSuccess(Account account) {

String info = account.getName() + “|” + account.getLevel();

setResult(info);

}

@Override

public void onFailed() {

setResult(“消息获取失败”);

}

});

}

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

题外话

不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~

这里我为大家准备了一些我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,点击这里免费分享给大家,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~

最后如果马化腾把腾讯给你一天,你会来做什么?欢迎评论区讨论。

样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~**

这里我为大家准备了一些我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,点击这里免费分享给大家,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~

[外链图片转存中…(img-lMuprvLe-1711326570350)]

最后如果马化腾把腾讯给你一天,你会来做什么?欢迎评论区讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值