当前位置: 首页 > news >正文

网站建设软件sh教做面包的网站

网站建设软件sh,教做面包的网站,北京手机网站开发价格,重庆行业平台1.LiveData初识 LiveData:ViewModel管理要展示的数据#xff08;VM层类似于原MVP中的P层#xff09;#xff0c;处理业务逻辑#xff0c;比如调用服务器的登陆接口业务。通过LiveData观察者模式#xff0c;只要数据的值发生了改变#xff0c;就会自动通知VIEW层#xf…1.LiveData初识 LiveData:ViewModel管理要展示的数据VM层类似于原MVP中的P层处理业务逻辑比如调用服务器的登陆接口业务。通过LiveData观察者模式只要数据的值发生了改变就会自动通知VIEW层View层会设置观察者来监听数据的改变。 MVP:P调用M层去获取数据P回调View层实现的接口把数据以函数参数的形式传递过去。 2.示例工程 build.gradle要修改下增加如下配置以开启Databinding dataBinding{enabled true;} 2.1View层 布局界面AltEnter可以转成Databinding可以识别的布局。这时识别前的布局。 activity_main.xml。 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:idid/mainandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityandroid:gravitycenter_horizontalandroid:orientationverticalEditTextandroid:layout_marginTop100dpandroid:idid/edtUserNameandroid:layout_width200dpandroid:layout_heightwrap_contentandroid:hint请输入用户名! /EditTextandroid:idid/edtPasswordandroid:layout_width200dpandroid:layout_heightwrap_contentandroid:hint请输入密码! /Buttonandroid:idid/btLoginandroid:layout_width200dpandroid:layout_heightwrap_contentandroid:text登陆//LinearLayout 转换后的布局 ?xml version1.0 encodingutf-8? layout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsdata/dataLinearLayoutandroid:idid/mainandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityandroid:gravitycenter_horizontalandroid:orientationverticalEditTextandroid:layout_marginTop100dpandroid:idid/edtUserNameandroid:layout_width200dpandroid:layout_heightwrap_contentandroid:hint请输入用户名! /EditTextandroid:idid/edtPasswordandroid:layout_width200dpandroid:layout_heightwrap_contentandroid:hint请输入密码! /Buttonandroid:idid/btLoginandroid:layout_width200dpandroid:layout_heightwrap_contentandroid:text登陆 //LinearLayout /layout MainActivity.java package com.gaoting.livedatatest.ui;import android.os.Bundle; import android.view.View; import android.widget.Toast;import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.databinding.DataBindingUtil; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider;import com.gaoting.livedatatest.R; import com.gaoting.livedatatest.databinding.ActivityMainBinding; import com.gaoting.livedatatest.viewmodel.LoginViewModel;/**** View层*/ public class MainActivity extends AppCompatActivity {ActivityMainBinding activityMainBinding;LoginViewModel loginViewModel;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);activityMainBinding DataBindingUtil.setContentView(this,R.layout.activity_main);loginViewModel new ViewModelProvider(MainActivity.this).get(LoginViewModel.class);initView();initListener();initLiveDataObserver();}private void initLiveDataObserver() {loginViewModel.getStrToken().observe(this, new ObserverString() {Overridepublic void onChanged(String newToken) {Toast.makeText(MainActivity.this,TOKENnewToken,Toast.LENGTH_SHORT).show();}});}private void initListener() {activityMainBinding.btLogin.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {String username activityMainBinding.edtUserName.getText().toString();String password activityMainBinding.edtPassword.getText().toString();loginViewModel.login(username,password);}});}private void initView() {activityMainBinding.edtUserName.setText(test);activityMainBinding.edtPassword.setText(12345678);} } 2.2ViewModel层 package com.gaoting.livedatatest.viewmodel;import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel;import com.gaoting.livedatatest.model.HttpDataSource;/**** VM层* 1.viewModel用来管理view层Activity要展示的数据* 2.处理业务逻辑比如对数据进行加工处理获取HTTP接口数据。*/ public class LoginViewModel extends ViewModel {//livedata token stringMutableLiveDataString strToken new MutableLiveData();public MutableLiveDataString getStrToken() {return strToken;}//loginpublic void login(String username, String password) {//可能会对密码进行加密等业务逻辑这里我们忽略。HttpDataSource httpDataSource new HttpDataSource();String token httpDataSource.login(username,password);strToken.postValue(token);} }2.3Model层 package com.gaoting.livedatatest.model;/**** 获取网络数据M层*/ public class HttpDataSource {//模拟请求网络服务器的登陆业务接口public String login(String username, String password) {String token;try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}token 123token;return token;} }
http://www.w-s-a.com/news/70017/

相关文章:

  • 企业年金是1比3还是1比4北京厦门网站优化
  • 政务信息网站建设工作方案云南建设工程质量监督网站
  • 如何做一份企业网站免费的短视频素材库
  • 云脑网络科技网站建设咸阳软件开发
  • seo对网站优化网站更换程序
  • 网站建设放什么科目中小学生在线做试卷的网站6
  • 网站建设推广公司排名绥化建设局网站
  • 凡科做的网站为什么打不开苏州行业网站建设
  • 南昌定制网站开发费用微信小商店官网入口
  • 深圳网站建设费用找人做的网站怎么看ftp
  • 做网站cookie传值dedecms网站后台
  • 温州网站推广网站建设要学会什么
  • c 网站开发框架品牌策划方案范文
  • 儿童摄影作品网站多元网络兰州网站建设
  • 电脑上不了建设厅网站常德网站建设费用
  • 做单页免费模板网站最新办公室装修风格效果图
  • 中国铁路建设投资公司网站熊学军想开网站建设公司
  • 优化一个网站多少钱网站开发北京
  • html教学关键词优化价格
  • 黄冈论坛网站有哪些给wordpress首页添加公告栏
  • 初中做数学题的网站做淘宝必备网站
  • 买拆车件上什么网站谁有那种手机网站
  • 一家专做有机蔬菜的网站万户网络是干嘛的
  • 十堰百度网站建设八宝山做网站公司
  • 地区电商网站系统建筑施工图纸培训班
  • 网站外包维护一年多少钱医院网站 功能
  • 电子商务市场的发展前景seo推广平台服务
  • 乐清网页设计公司哪家好seo推广任务小结
  • 360建筑网是什么pc优化工具
  • 越秀免费网站建设风景区网站建设项目建设可行性