MVVM框架抖音分享

本文介绍了如何在Android应用中使用MVVM架构创建Fragment,涉及数据获取、列表适配器、视频自动播放、点赞/收藏/分享功能以及UMengSocialShare集成。
摘要由CSDN通过智能技术生成
package com.example.day3.Fragment.Framgnet1;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemChildClickListener;
import com.example.day3.Apdata.RemmentApdata;
import com.example.day3.Entity.Remment;
import com.example.day3.R;
import com.example.day3.UI.Douyin;
import com.example.day3.View.BaseFragment;
import com.example.day3.Viewmodel.Remmentviewmodel;
import com.example.day3.databinding.FragmentTuijianBinding;
import com.google.gson.Gson;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMWeb;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import okhttp3.MediaType;
import okhttp3.RequestBody;


public class tuijianFragment extends BaseFragment<FragmentTuijianBinding, Remmentviewmodel> {
    RemmentApdata remmentApdata;
    private List<Remment.DataDTO> list=new ArrayList<>();
    public static tuijianFragment newInstance() {
        tuijianFragment fragment = new tuijianFragment();
        Bundle args = new Bundle();
        fragment.setArguments(args);
        return fragment;
    }
    @Override
    protected void initdata() {
        remmentApdata=new RemmentApdata();
        viewDataBinding.tuuijian.setAdapter(remmentApdata);
        //自动播放
        Douyin douyin=new Douyin(getActivity());
        viewDataBinding.tuuijian.setLayoutManager(douyin);
        viewDataBinding.tuuijian.setOnScrollChangeListener(new View.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View view, int i, int i1, int i2, int i3) {
                int firstvisit=douyin.findFirstVisibleItemPosition();
                StandardGSYVideoPlayer standardGSYVideoPlayer= (StandardGSYVideoPlayer) remmentApdata.getViewByPosition(firstvisit,R.id.gsy);
                standardGSYVideoPlayer.startPlayLogic();
            }
        });

        remmentApdata.addChildClickViewIds(R.id.iv_focus,R.id.iv_like,R.id.iv_comment,R.id.iv_collect,R.id.iv_share,R.id.iv_close,R.id.iv_send);
        remmentApdata.setOnItemChildClickListener(new OnItemChildClickListener() {
            @Override
            public void onItemChildClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) {
                switch (view.getId()){
                    case R.id.iv_focus:
                        break;
                    case R.id.iv_like:

                        break;
                    case R.id.iv_comment:
                        break;
                    case R.id.iv_close:
                        break;
                    case R.id.iv_send:
                        break;
                    case R.id.iv_collect:
                        break;
                    case R.id.iv_share:
                        share(position);
                        break;
                }
            }
        });

    }

    private void share(int position) {
        Remment.DataDTO dataDTO=remmentApdata.getData().get(position);
        UMWeb web =new UMWeb("");
        web.setTitle("This is music title");//标题
        web.setDescription("my description");//描述

        new ShareAction(getActivity())
                .setDisplayList(SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
                .withMedia(web)
                .open();
    }


    @Override
    protected void handserver() {
        super.handserver();
        mviewmodel.remmentMutableLiveData.observe(getActivity(), new Observer<Remment>() {
            @Override
            public void onChanged(Remment remment) {
                if (remment.getCode()==200){
                    list.addAll(remment.getData());
                    remmentApdata.getData().addAll(list);
                    remmentApdata.notifyDataSetChanged();
                }
            }
        });
    }

    @Override
    protected void initview() {
        mviewmodel.getRemments(15,10);
    }

    @Override
    protected Class<Remmentviewmodel> getviewmodel() {
        return Remmentviewmodel.class;
    }

    @Override
    protected int getLayout() {
        return R.layout.fragment_tuijian;
    }
}

//mvvm框架以及点赞收藏分享

package com.example.day3;

import android.app.Application;

import com.umeng.commonsdk.UMConfigure;

public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        UMConfigure.init(this,"65a6680da7208a5af19e8b8c"
                ,"umeng", UMConfigure.DEVICE_TYPE_PHONE,"");

    }
}

//接口进行分享qq,vx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值