当前位置:主页 > android教程 > Android Databinding关注功能

Android开发使用Databinding实现关注功能mvvp

发布:2023-03-08 11:00:01 59


给大家整理一篇相关的编程文章,网友沃冰凡根据主题投稿了本篇教程内容,涉及到Android、Databinding关注功能、Android、Databinding、mvvp、Android Databinding关注功能相关内容,已被231网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

Android Databinding关注功能

正文

说到关注功能,可能很多小伙伴要说了。谁不会写

但是没有合理的架构,大家写出来的代码很可能是一大堆的复制粘贴。比如十几个页面,都有这个关注按钮。然后,你是不是也要写十几个地方呢 然后修改的时候是不是也要修改十几个地方 我们是否考虑过一下几个问题?

  •  可复用性 (是否重复代码和逻辑过多?)
  •  可扩展性 (比如我这里是关注的人,传userId,下个地方又是文章 articleId)
  •  可读性 冗余代码过多,势必要影响到可读性。

然后再看下自己写的代码,是否会面临上面的几个问题呢?是否有一种优雅的方式。帮我们一劳永逸。我这里给出一个解决方案是 使用Databinding ,如果对databinding使用不熟悉的,建议先去熟悉一下databinding用法

目标

我们要实现的目标是,希望能让关注这快的业务逻辑实现最大程度复用,在所有有关注按钮布局的页面,只需要引入一个同一个vm。实现关注和非关注状态逻辑的切换

Modle

下面以关注人来做为示例

要有两种状态,实体bean要继承自BaseObservable。配合databing实现mvvm效果,属性需要定义为@Bindable,当属性发生变化的时候,调用notifyPropertyChanged(属性ID)

public class User extends BaseObservable implements Serializable {
    public boolean hasFollow;//是否关注,是和否
    @Bindable
    public boolean isHasFollow() {
        return hasFollow;
    }
    public void setHasFollow(boolean hasFollow) {
        this.hasFollow = hasFollow;
        notifyPropertyChanged(com.mooc.ppjoke.BR._all);
    }
}

页面布局如下



    
        
        
        
        
        
        
    
    
        
        
        
        
    

显示效果

Presenter

package com.mooc.ppjoke.ui;
import android.app.Application;
import android.content.Context;
import android.content.DialogInterface;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.arch.core.executor.ArchTaskExecutor;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Observer;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mooc.libcommon.extention.LiveDataBus;
import com.mooc.libcommon.global.AppGlobals;
import com.mooc.libnetwork.ApiResponse;
import com.mooc.libnetwork.ApiService;
import com.mooc.libnetwork.JsonCallback;
import com.mooc.ppjoke.model.Comment;
import com.mooc.ppjoke.model.Feed;
import com.mooc.ppjoke.model.TagList;
import com.mooc.ppjoke.model.User;
import com.mooc.ppjoke.ui.login.UserManager;
import com.mooc.ppjoke.ui.share.ShareDialog;
import org.jetbrains.annotations.NotNull;
import java.util.Date;
public class InteractionPresenter {
    //关注/取消关注一个用户
    private static void toggleFollowUser(LifecycleOwner owner,User user) {
        ApiService.get("/ugc/toggleUserFollow")
                .addParam("followUserId", UserManager.get().getUserId())
                .addParam("userId", feed.author.userId)
                .execute(new JsonCallback() {
                    @Override
                    public void onSuccess(ApiResponse response) {
                        if (response.body != null) { boolean hasFollow = response.body.getBooleanValue("hasLiked"); user.setHasFollow(hasFollow); LiveDataBus.get().with(DATA_FROM_INTERACTION)         .postValue(feed);
                        }
                    }
                    @Override
                    public void onError(ApiResponse response) {
                        showToast(response.message);
                    }
                });
    }
}

综上已经实现了简单的用户关注功能。activity不需要做任何事情。

以上就是Android开发使用Databinding实现关注功能mvvp的详细内容,更多关于Android Databinding关注功能的资料请关注码农之家其它相关文章!


参考资料

相关文章

  • Android Studio模拟器运行apk文件

    发布:2023-03-06

    这篇文章主要介绍了Android Studio模拟器运行apk文件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下


  • MobLink Android端业务场景简单说明

    发布:2023-03-09

    这篇文章主要介绍了MobLink Android端业务场景简单说明,MobLink的功能实现就是在分享前会将链接的参数信息保存到服务器,更多相关内容需要的朋友可以参考一下


  • MPAndroidChart绘制自定义运动数据图表示例详解

    发布:2023-03-04

    这篇文章主要为大家介绍了MPAndroidChart绘制自定义运动数据图表示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android PowerManagerService 打开省电模式

    发布:2023-03-02

    这篇文章主要介绍了Android PowerManagerService打开省电模式,文章通告省电模式的打开过程、什么是 battery saver sticky 模式两部分展开详情,感兴趣的朋友可以参考一下


  • Android与iOS包体优化及一键自动打包脚本

    发布:2023-03-06

    这篇文章主要为大家介绍了安卓与iOS包体优化及一键自动打包脚本详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android数据缓存框架内置ORM功能使用教程

    发布:2023-03-05

    这篇文章主要为大家介绍了Android数据缓存框架内置ORM功能使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android开发Compose框架使用开篇

    发布:2023-03-05

    这篇文章主要为大家介绍了Android开发Compose框架使用开篇,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android动态更新Menu菜单的实现过程

    发布:2023-03-06

    菜单是用户界面中最常见的元素之一,使用非常频繁,下面这篇文章主要给大家介绍了关于Android动态更新Menu菜单的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下


网友讨论