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

自己做网站转发新闻违法么下载官方正版app

自己做网站转发新闻违法么,下载官方正版app,网站群建设接入指南,企业管理软件完整 LiveData Demo(Java 实现) 下面是一个可直接运行的完整 LiveData 示例,包含 ViewModel、LiveData 的基本使用以及与 UI 的交互。 项目结构 app/ ├── java/ │ ├── com.example.livedatademo/ │ │ ├── MainActivity.java │ …

完整 LiveData Demo(Java 实现)
下面是一个可直接运行的完整 LiveData 示例,包含 ViewModel、LiveData 的基本使用以及与 UI 的交互。

  1. 项目结构
    app/
    ├── java/
    │ ├── com.example.livedatademo/
    │ │ ├── MainActivity.java
    │ │ ├── UserViewModel.java
    │ │ └── User.java
    ├── res/
    │ ├── layout/
    │ │ └── activity_main.xml
  2. 实现代码
    activity_main.xml
    xml
<?xml version="1.0" encoding="utf-8"?>

<TextViewandroid:id="@+id/tvUserInfo"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户信息将显示在这里"android:textSize="18sp" /><EditTextandroid:id="@+id/etUserName"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="16dp"android:hint="输入用户名" /><EditTextandroid:id="@+id/etUserAge"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:hint="输入年龄"android:inputType="number" /><Buttonandroid:id="@+id/btnUpdate"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="16dp"android:text="更新用户信息" /><Buttonandroid:id="@+id/btnRandom"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="随机生成用户" />
User.java (数据模型) java public class User { private String name; private int age;
public User(String name, int age) {this.name = name;this.age = age;
}public String getName() {return name;
}public int getAge() {return age;
}@Override
public String toString() {return "姓名: " + name + ", 年龄: " + age;
}

}
UserViewModel.java
java
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;

import java.util.Random;

public class UserViewModel extends ViewModel {
// 私有可变的LiveData
private final MutableLiveData mUser = new MutableLiveData<>();

// 对外暴露不可变的LiveData
public LiveData<User> getUser() {return mUser;
}// 更新用户信息
public void updateUser(String name, int age) {User user = new User(name, age);mUser.setValue(user);
}// 生成随机用户
public void generateRandomUser() {String[] names = {"张三", "李四", "王五", "赵六", "钱七"};int randomAge = new Random().nextInt(50) + 10;String randomName = names[new Random().nextInt(names.length)];updateUser(randomName, randomAge);
}

}
MainActivity.java
java
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private UserViewModel viewModel;
private TextView tvUserInfo;
private EditText etUserName, etUserAge;
private Button btnUpdate, btnRandom;

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 初始化视图tvUserInfo = findViewById(R.id.tvUserInfo);etUserName = findViewById(R.id.etUserName);etUserAge = findViewById(R.id.etUserAge);btnUpdate = findViewById(R.id.btnUpdate);btnRandom = findViewById(R.id.btnRandom);// 初始化ViewModelviewModel = new ViewModelProvider(this).get(UserViewModel.class);// 观察LiveDataviewModel.getUser().observe(this, new Observer<User>() {@Overridepublic void onChanged(User user) {// 当用户数据变化时更新UItvUserInfo.setText(user.toString());}});// 更新按钮点击事件btnUpdate.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name = etUserName.getText().toString();String ageStr = etUserAge.getText().toString();if (!name.isEmpty() && !ageStr.isEmpty()) {int age = Integer.parseInt(ageStr);viewModel.updateUser(name, age);}}});// 随机生成按钮点击事件btnRandom.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {viewModel.generateRandomUser();}});
}

}
3. 运行说明
将上述代码复制到你的 Android Studio 项目中

确保已添加必要的依赖(见前面的依赖部分)

运行应用后,你可以:

输入用户名和年龄,点击"更新用户信息"按钮

点击"随机生成用户"按钮自动创建随机用户

观察 TextView 会自动更新显示最新用户信息

  1. 功能扩展建议
    添加数据验证
    在 UserViewModel.java 中添加:

java
public boolean isValidUser(String name, String ageStr) {
if (name == null || name.trim().isEmpty()) {
return false;
}

try {int age = Integer.parseInt(ageStr);return age > 0 && age < 150;
} catch (NumberFormatException e) {return false;
}

}
添加错误处理 LiveData
在 UserViewModel.java 中:

java
private final MutableLiveData mError = new MutableLiveData<>();

public LiveData getError() {
return mError;
}

// 在updateUser方法中添加验证
public void updateUser(String name, String ageStr) {
if (!isValidUser(name, ageStr)) {
mError.setValue(“无效的用户信息”);
return;
}

int age = Integer.parseInt(ageStr);
User user = new User(name, age);
mUser.setValue(user);
mError.setValue(null);

}
在 MainActivity.java 中观察错误:

java
viewModel.getError().observe(this, new Observer() {
@Override
public void onChanged(String error) {
if (error != null) {
Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
}
}
});
这个完整 Demo 展示了 LiveData 的核心用法,包括:

创建和观察 LiveData

在 ViewModel 中管理数据

UI 和数据分离

响应式更新界面

你可以基于这个 Demo 进一步扩展,添加更多功能如网络请求、数据库操作等。


文章转载自:

http://jE4Uebmb.htbgz.cn
http://BHgUAbbC.htbgz.cn
http://rb0BrnKv.htbgz.cn
http://RgFzXubH.htbgz.cn
http://T3igqH5Y.htbgz.cn
http://E5B6OuX7.htbgz.cn
http://7JL0ogjJ.htbgz.cn
http://jFSTRCwj.htbgz.cn
http://O9HHudWi.htbgz.cn
http://2rPbfMt5.htbgz.cn
http://yuYuOt5G.htbgz.cn
http://X2FC2anC.htbgz.cn
http://b1tHWcZI.htbgz.cn
http://4kpHgYlY.htbgz.cn
http://MO80fjX5.htbgz.cn
http://8lNhnbND.htbgz.cn
http://KUj9UXnV.htbgz.cn
http://giDXkavu.htbgz.cn
http://xSjWSzlk.htbgz.cn
http://oveYTwXu.htbgz.cn
http://whwzSU6q.htbgz.cn
http://AMfx1ixA.htbgz.cn
http://GdGP1FEU.htbgz.cn
http://0jZk779N.htbgz.cn
http://o2llwrg4.htbgz.cn
http://KHnSxNiI.htbgz.cn
http://9rLfED3J.htbgz.cn
http://JrTYzg7b.htbgz.cn
http://XoDZvGKH.htbgz.cn
http://vs5cQZfd.htbgz.cn
http://www.dtcms.com/wzjs/628873.html

相关文章:

  • 济源网站优化wordpress图片轮播插件
  • 网站文章伪原创如何做宝塔安装wordpress教程
  • ppt的网站导航栏怎么做安徽建新建设工程有限公司网站
  • 提供网站制作公司报价wordpress模板下载失败
  • 贵阳微网站意见反馈的网站怎么做
  • 推进网站集约化建设制度2022华为云营销季
  • 网站开发及建设成都企业网站建站
  • 做新媒体应该关注什么网站软文推广的作用
  • 北京 网站建设 公司新网站怎么做seo优化
  • 台州宇洋台州网站建设网站开发工程师简介
  • 门户网站开发工具网站建设需求说明文档
  • 资讯网站的优势自建 wordpress
  • 密云建设网站公司her123 wordpress
  • 双语企业网站源码公司要想做个网站这么弄
  • 济宁 做网站网站seo优化如何做
  • 网站推广广告公司花都网站建设网页设计
  • 酒泉建设局造价官网站浙江平台网站建设哪家有
  • 用手机可以做网站嘛如何做app推广运营
  • 重庆做网站letide关键词优化排名易下拉霸屏
  • 网站seo优化课程烟台 做网站的公司
  • 做完整的网站设计需要的技术做网站设计用什么软件最好
  • jsp做的网站中企动力网站后台
  • 阿里巴巴有几个网站是做外贸的个人网站开发流程
  • 做单页免费模板网站wordpress 移动端网页
  • 司法政务网站群建设引流推广平台是什么意思
  • 网站开发和程序员Wordpress 跨域登录
  • 成都市微信网站建附近电子商城
  • 一个网站绑定2个域名新网站大量收录好不好
  • asp服装网站源码没有基础学平面设计难吗
  • 中国做外贸网站有哪些网站后门清除