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

建站程序湖北省城建设计院网站

建站程序,湖北省城建设计院网站,站长工具seo综合查询问题,个人网站首页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.dnsts.com.cn/news/137678.html

相关文章:

  • 对外网站建设情况汇报微信扫码登记小程序
  • 购物网站开发代码devexpress网站开发
  • 网站seo内部优化我做的网站手机上不了
  • 网站推广效果的评估指标主要包括沈阳市住房和城乡建设局网站首页
  • python 做的网站有哪些做网站需求方案
  • dw用设计视图做网站商业计划书
  • 怎么做自动跳转网站网站安全狗 fastcgi
  • 网站备案网站简介定制化网站开发公司
  • 建网站公司 深圳h5 做移动端网站
  • 新网站怎么运营h5网站怎么做的
  • 网站开发的知识莱州建设局网站
  • 怎么做游戏网站编辑德州网站制作哪家好
  • 七米网站建设下载安装百度一下
  • 高校网站建设及管理制度江苏广兴建设集团网站
  • 帝国cms做中英文网站外贸行销网站
  • 自适应网站制作方案新冠疫苗接种率
  • 免费网站源码下载平台宿迁华夏建设集团网站
  • 沂水县住房和建设局网站雄安专业网站建设方案
  • 开一个网站建设公司需要什么北京网站建设知名公司
  • 网站做统计网站seo优化免
  • 济南哪家公司可以做网站wordpress加入弹窗红包
  • 电子商城网站装修平台哪个好
  • 农场游戏系统开发 网站建设推广我的世界做皮肤网站
  • 城建道桥建设集团网站宣化网站制作公司
  • 在线做英语题的网站html5网页制作成品
  • 公司怎么开网站上海网站建设哪个平台好
  • 唐山网站制作app个人可以做网站维护吗
  • 有什么网站是学做吃的epcms网站模板
  • 网站数据库建设计划书建站平台外贸
  • 打开一个网站湖南 网站建设