合并1
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import static androidx.lifecycle.Transformations.map;
|
||||
|
||||
import androidx.arch.core.util.Function;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PageViewModel extends ViewModel {
|
||||
|
||||
private MutableLiveData<Integer> mIndex = new MutableLiveData<>();
|
||||
private LiveData<String> mText = map(mIndex, input -> "Hello world from section: " + input);
|
||||
private MutableLiveData<List<GiftUserWallBean.GiftWallBean>> mLiangDataList = new MutableLiveData<>();
|
||||
private MutableLiveData<List<GiftUserWallBean.GiftWallBean>> mNoLiangDataList = new MutableLiveData<>();
|
||||
|
||||
// 根据索引返回不同的数据集合
|
||||
private LiveData<List<GiftUserWallBean.GiftWallBean>> mDataList = map(mIndex, input -> {
|
||||
if (input == 1) {
|
||||
return mLiangDataList.getValue();
|
||||
} else if (input == 2) {
|
||||
return mNoLiangDataList.getValue();
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
||||
public void setIndex(int index) {
|
||||
mIndex.setValue(index);
|
||||
}
|
||||
|
||||
public LiveData<String> getText() {
|
||||
return mText;
|
||||
}
|
||||
|
||||
// 获取根据索引动态变化的数据集合
|
||||
public LiveData<List<GiftUserWallBean.GiftWallBean>> getDataList() {
|
||||
return mDataList;
|
||||
}
|
||||
|
||||
// 设置liang数据集合
|
||||
public void setLiangDataList(List<GiftUserWallBean.GiftWallBean> dataList) {
|
||||
for (GiftUserWallBean.GiftWallBean bean : dataList) {
|
||||
bean.set_liang(true);
|
||||
}
|
||||
mLiangDataList.setValue(dataList);
|
||||
}
|
||||
|
||||
// 设置no_liang数据集合
|
||||
public void setNoLiangDataList(List<GiftUserWallBean.GiftWallBean> dataList) {
|
||||
for (GiftUserWallBean.GiftWallBean bean : dataList) {
|
||||
bean.set_liang(false);
|
||||
}
|
||||
mNoLiangDataList.setValue(dataList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.example.modulevocal.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.graphics.Color;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.activity.ui.main.GiftWallConacts;
|
||||
import com.example.modulevocal.activity.ui.main.GiftWallPresenter;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import com.example.modulevocal.activity.ui.main.SectionsPagerAdapter;
|
||||
import com.example.modulevocal.databinding.ActivityGiftWallBinding;
|
||||
import com.google.android.material.tabs.TabLayoutMediator;
|
||||
import com.xscm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.bean.RoomTypeModel;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
|
||||
/**
|
||||
* 礼物墙
|
||||
*/
|
||||
public class GiftWallActivity extends BaseMvpActivity<GiftWallPresenter, ActivityGiftWallBinding> implements GiftWallConacts.View {
|
||||
SectionsPagerAdapter sectionsPagerAdapter;
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.topBar.setTitle("礼物墙");
|
||||
mBinding.topBar.setColor(getResources().getColor(R.color.white));
|
||||
MvpPre.giftWall(SpUtil.getUserId()+"");
|
||||
}
|
||||
|
||||
// 在获取到数据后调用此方法初始化 ViewPager
|
||||
private void setupViewPagerWithData(GiftUserWallBean data) {
|
||||
sectionsPagerAdapter = new SectionsPagerAdapter(this, data);
|
||||
ViewPager2 viewPager = mBinding.viewPager;
|
||||
viewPager.setAdapter(sectionsPagerAdapter);
|
||||
TabLayout tabs = mBinding.tabs;
|
||||
|
||||
// TabLayout 需要手动关联
|
||||
new TabLayoutMediator(mBinding.tabs, mBinding.viewPager,
|
||||
(tab, position) -> tab.setText(sectionsPagerAdapter.getPageTitle(position))
|
||||
).attach();
|
||||
|
||||
// 设置选中和未选中的文字颜色及大小
|
||||
tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
||||
@Override
|
||||
public void onTabSelected(TabLayout.Tab tab) {
|
||||
View customView = tab.getCustomView();
|
||||
if (customView instanceof TextView textView) {
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||
textView.setTextColor(getResources().getColor(android.R.color.white));
|
||||
customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_indicator);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabUnselected(TabLayout.Tab tab) {
|
||||
View customView = tab.getCustomView();
|
||||
if (customView instanceof TextView textView) {
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
|
||||
textView.setTextColor(Color.parseColor("#ffffff"));
|
||||
customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_unselected_background);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabReselected(TabLayout.Tab tab) {
|
||||
}
|
||||
});
|
||||
tabs.selectTab(tabs.getTabAt(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_gift_wall;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected GiftWallPresenter bindPresenter() {
|
||||
return new GiftWallPresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGiftWall(GiftUserWallBean data) {
|
||||
// 添加点亮的礼物
|
||||
// 初始化 ViewPager 和 TabLayout
|
||||
setupViewPagerWithData(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
package com.example.modulevocal.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.graphics.LinearGradient;
|
||||
import android.graphics.Shader;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.GridView;
|
||||
import android.widget.TextView;
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.adapter.GridNobleAdapter;
|
||||
import com.example.modulevocal.adapter.NobliityBannerAdapter;
|
||||
import com.example.modulevocal.conacts.NobleTitleConacts;
|
||||
import com.example.modulevocal.databinding.ActivityNobleDetailsBinding;
|
||||
import com.example.modulevocal.presenter.NobleTitlePresenter;
|
||||
import com.xscm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.xscm.moduleutil.base.CommonAppContext;
|
||||
import com.xscm.moduleutil.bean.*;
|
||||
import com.xscm.moduleutil.dialog.RoomAuctionWebViewDialog;
|
||||
import com.zhpan.bannerview.BannerViewPager;
|
||||
import com.zhpan.bannerview.constants.PageStyle;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
|
||||
/**
|
||||
* @Description: 这是爵位详情方案
|
||||
* @Author: qx
|
||||
* @CreateDate: 2022/3/23 10:05
|
||||
*/
|
||||
public class NobleDetailsActivity extends BaseMvpActivity<NobleTitlePresenter, ActivityNobleDetailsBinding> implements NobleTitleConacts.View {
|
||||
NobliityBannerAdapter mAdapter;
|
||||
GridView gridView;
|
||||
GridNobleAdapter mGiftWallAdapter;
|
||||
|
||||
private String lid="";
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
mBinding.ivBack.setColorFilter(getResources().getColor(R.color.white));
|
||||
mBinding.ivBack.setOnClickListener(v -> finish());
|
||||
mBinding.ivIntent.setOnClickListener(v -> {//爵位规则
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "api/Page/page_show?id=29");
|
||||
RoomAuctionWebViewDialog dialog = new RoomAuctionWebViewDialog(this, bundle);
|
||||
dialog.show();
|
||||
});
|
||||
gridView = mBinding.gridView;
|
||||
mGiftWallAdapter=new GridNobleAdapter();
|
||||
mBinding.imLjkt.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(this, NoblePaymentActivity.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("lid",lid);
|
||||
intent.putExtras( bundle);
|
||||
startActivity(intent);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
lid=getIntent().getStringExtra("lid");
|
||||
if (lid==null){
|
||||
lid="";
|
||||
}
|
||||
MvpPre.getNobilityList();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_noble_details;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected NobleTitlePresenter bindPresenter() {
|
||||
return new NobleTitlePresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityDetail(NobilitDeatils nobilitDeatils) {
|
||||
|
||||
}
|
||||
int index = 0;
|
||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||
@Override
|
||||
public void getNobilityList(List<NobilitList> nobilitLists) {
|
||||
if (nobilitLists==null){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (int i=0; i < nobilitLists.size(); i++){
|
||||
if (lid.equals(nobilitLists.get(i).getLid()+"")){
|
||||
index = i;
|
||||
}
|
||||
}
|
||||
|
||||
mAdapter = new NobliityBannerAdapter();
|
||||
mBinding.banner
|
||||
.setAdapter(mAdapter)
|
||||
.setAutoPlay(false)
|
||||
.setIndicatorVisibility(GONE)
|
||||
.setPageStyle(PageStyle.MULTI_PAGE_OVERLAP, 0.6f)
|
||||
.setRevealWidth(200)
|
||||
.setCanLoop(false)
|
||||
.create();
|
||||
mBinding.banner.create(nobilitLists); // 刷新数据并启动自动播放
|
||||
mBinding.banner.setCurrentItem(index);
|
||||
mAdapter.setmCurrentPosition( index);
|
||||
mBinding.banner.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||
updateNobleInfo(nobilitLists.get( position), position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
super.onPageScrollStateChanged(state);
|
||||
}
|
||||
});
|
||||
updateNobleInfo(nobilitLists.get(index), index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindType(BindType bindType) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appPay(AppPay appPay) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityPrice(NobilityPrice nobilityPrice) {
|
||||
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private void updateNobleInfo(NobilitList nobilitLists, int position) {
|
||||
mBinding.tvNobleLv.setText(nobilitLists.getName());
|
||||
applyGradientToTextView(mBinding.tvNobleLv);
|
||||
mBinding.tvTq.setText("专属特权(" + nobilitLists.getPower().getCount_str()+")");
|
||||
mBinding.tvLvTis.setText(nobilitLists.getName() + "专属 ¥");
|
||||
mBinding.tvNobleMob.setText(nobilitLists.getPay_price()+" / "+nobilitLists.getDay()+"天");
|
||||
|
||||
gridView.setAdapter(mGiftWallAdapter);
|
||||
lid=nobilitLists.getLid()+"";
|
||||
// 观察数据变化并更新 GridView
|
||||
mGiftWallAdapter.updateData(nobilitLists.getPower().getList());
|
||||
if (position>=index){
|
||||
if (position==index){
|
||||
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_xf);
|
||||
}else {
|
||||
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_ljsj);
|
||||
}
|
||||
mBinding.imLjkt.setClickable( true);
|
||||
}else {
|
||||
mBinding.imLjkt.setImageResource(com.xscm.moduleutil.R.mipmap.noble_h_kt);
|
||||
mBinding.imLjkt.setClickable( false);
|
||||
}
|
||||
}
|
||||
private void applyGradientToTextView(TextView textView) {
|
||||
ViewTreeObserver vto = textView.getViewTreeObserver();
|
||||
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
int width = textView.getWidth();
|
||||
if (width > 0) {
|
||||
LinearGradient gradient = new LinearGradient(
|
||||
0, 0, width, 0,
|
||||
new int[]{0xFFF4C07C, 0xFFFFFFFF, 0xFFF4C07C},
|
||||
new float[]{0f, 0.5f, 1f},
|
||||
Shader.TileMode.CLAMP
|
||||
);
|
||||
textView.getPaint().setShader(gradient);
|
||||
textView.invalidate();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
package com.example.modulevocal.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Paint;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
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.recyclerview.widget.LinearLayoutManager;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.adapter.NoblePrivilegeAdapter;
|
||||
import com.example.modulevocal.conacts.NobleTitleConacts;
|
||||
import com.example.modulevocal.databinding.ActivityNoblePaymentBinding;
|
||||
import com.example.modulevocal.presenter.NobleTitlePresenter;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.tencent.mm.opensdk.openapi.IWXAPI;
|
||||
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
|
||||
import com.xscm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.xscm.moduleutil.adapter.PayMethodAdapter;
|
||||
import com.xscm.moduleutil.base.CommonAppContext;
|
||||
import com.xscm.moduleutil.bean.*;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.dialog.RoomAuctionWebViewDialog;
|
||||
import com.xscm.moduleutil.event.PayEvent;
|
||||
import com.xscm.moduleutil.utils.*;
|
||||
import com.xscm.moduleutil.widget.PaymentUtil;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
/**
|
||||
* @Description: 这是爵位支付方案
|
||||
* @Author: qx
|
||||
* @CreateDate: 2022/3/23 10:05
|
||||
*/
|
||||
public class NoblePaymentActivity extends BaseMvpActivity<NobleTitlePresenter, ActivityNoblePaymentBinding> implements NobleTitleConacts.View{
|
||||
private PayMethodAdapter bindTypeAdapter;
|
||||
private BindType.AllData selectedItem;
|
||||
private String lid;
|
||||
private String money;
|
||||
private String name;
|
||||
private String yxq;
|
||||
private String imNoble2;
|
||||
private List<NobilityPrice.PowerItem> powerItems=new ArrayList<>();
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.ivBack.setOnClickListener(v -> finish());
|
||||
mBinding.ivIntent.setOnClickListener(v -> {//爵位规则
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "api/Page/page_show?id=29");
|
||||
RoomAuctionWebViewDialog dialog = new RoomAuctionWebViewDialog(this, bundle);
|
||||
dialog.show(); });
|
||||
|
||||
mBinding.tvYsxy.setOnClickListener(this::onClick);
|
||||
|
||||
mBinding.recycleView1.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
|
||||
bindTypeAdapter = new PayMethodAdapter(com.xscm.moduleutil.R.layout.item_bind_type);
|
||||
mBinding.recycleView1.setAdapter(bindTypeAdapter);
|
||||
|
||||
bindTypeAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
|
||||
bindTypeAdapter.setSelectedPosition(position);
|
||||
|
||||
// 获取当前选中的数据
|
||||
selectedItem = bindTypeAdapter.getItem(position);
|
||||
// 可以在这里处理选中逻辑,比如保存到变量或触发支付
|
||||
});
|
||||
|
||||
|
||||
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvPayment, ColorManager.getInstance().getPrimaryColorInt(), 53);
|
||||
mBinding.tvPayment.setTextColor(ColorManager.getInstance().getButtonColorInt());
|
||||
|
||||
mBinding.tvPayment.setOnClickListener(this::onClick);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
lid=getIntent().getStringExtra("lid");
|
||||
MvpPre.getNobilityPrice(lid);
|
||||
MvpPre.bindType(SpUtil.getUserId() + "");
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
int id = view.getId();
|
||||
if (id== R.id.tv_ysxy) {
|
||||
ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl()+"/api/Page/page_show?id=30").withString("title", "爵位服务协议").navigation();
|
||||
}else if (id== R.id.tv_payment){
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
MvpPre.appPay(SpUtil.getUserId() + "", money, selectedItem.getType(),lid);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_noble_payment;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected NobleTitlePresenter bindPresenter() {
|
||||
return new NobleTitlePresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityDetail(NobilitDeatils nobilitDeatils) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityList(List<NobilitList> nobilitLists) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindType(BindType bindType) {
|
||||
List<BindType.AllData> allData = new ArrayList<>();
|
||||
if (bindType.getAli().getIs_pay_open().equals("1")) {
|
||||
allData.add(bindType.getAli());
|
||||
}
|
||||
if (bindType.getWx().getIs_pay_open().equals("1")) {
|
||||
allData.add(bindType.getWx());
|
||||
}
|
||||
if (bindType.getBank().getIs_pay_open().equals("1")) {
|
||||
allData.add(bindType.getBank());
|
||||
}
|
||||
if (bindType.getAli_tl().getIs_pay_open().equals("1")) {
|
||||
allData.add(bindType.getAli_tl());
|
||||
}
|
||||
if (bindType.getWx_tl().getIs_pay_open().equals("1")) {
|
||||
allData.add(bindType.getWx_tl());
|
||||
}
|
||||
|
||||
bindTypeAdapter.setNewData(allData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appPay(AppPay appPay) {
|
||||
if (appPay.getAli()!=null) {
|
||||
PaymentUtil.payAlipay(this, appPay.getAli());
|
||||
}else if (appPay.getWx()!=null){
|
||||
|
||||
IWXAPI wxapi = WXAPIFactory.createWXAPI(this, CommonAppContext.getInstance().getCurrentEnvironment().getWxAppId());
|
||||
PaymentUtil.payWxMiniProgram2(wxapi,appPay);
|
||||
}else if (appPay.getTl()!=null){
|
||||
if (appPay.getTl().getRemark().equals("5")) {//微信
|
||||
IWXAPI wxapi = WXAPIFactory.createWXAPI(this, CommonAppContext.getInstance().getCurrentEnvironment().getWxAppId());
|
||||
try {
|
||||
String paramString = buildParamString(appPay.getTl());
|
||||
PaymentUtil.payWxMiniProgramWx(wxapi,paramString);
|
||||
android.util.Log.d("RequestParams", paramString); // 输出拼接后的参数
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (appPay.getTl().getRemark().equals("4")) {//支付宝
|
||||
String s= JSON.toJSONString(appPay.getTl());
|
||||
try {
|
||||
String query = URLEncoder.encode("payinfo=" + URLEncoder.encode(s, "UTF-8"), "UTF-8");
|
||||
String url = "alipays://platformapi/startapp?appId=2021001104615521&page=pages/orderDetail/orderDetail&thirdPartSchema="
|
||||
+ URLEncoder.encode("myziroom://myziroom/", "UTF-8") + "&query=" + query;
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
||||
startActivity(intent);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityPrice(NobilityPrice nobilityPrice) {
|
||||
if (nobilityPrice==null){
|
||||
return;
|
||||
}
|
||||
name=nobilityPrice.getNobility_name();
|
||||
yxq=nobilityPrice.getEnd_time();
|
||||
mBinding.tvLv.setText(nobilityPrice.getNobility_name());
|
||||
ImageUtils.loadHeadCC(nobilityPrice.getNobility_image(), mBinding.imNoble);
|
||||
imNoble2=nobilityPrice.getNobility_image();
|
||||
mBinding.tvTime.setText("有效期:"+nobilityPrice.getDay()+"天");
|
||||
mBinding.tvSjJg.setText("¥"+nobilityPrice.getPrice());
|
||||
mBinding.tvHxJg.setText("¥"+nobilityPrice.getPay_price());
|
||||
mBinding.tvHxJg.setPaintFlags( mBinding.tvHxJg.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
|
||||
money=nobilityPrice.getPrice();
|
||||
|
||||
NoblePrivilegeAdapter adapter = new NoblePrivilegeAdapter();
|
||||
adapter.setNewData(nobilityPrice.getPower_list());
|
||||
mBinding.recycleView2.setLayoutManager(new LinearLayoutManager(this));
|
||||
// 设置到 RecyclerView
|
||||
mBinding.recycleView2.setAdapter(adapter);
|
||||
powerItems=nobilityPrice.getPower_list();
|
||||
|
||||
}
|
||||
|
||||
public static String buildParamString(Object obj) throws IllegalAccessException {
|
||||
Class<?> clazz = obj.getClass();
|
||||
Field[] fields = clazz.getDeclaredFields();
|
||||
TreeMap<String, String> paramMap = new TreeMap<>();
|
||||
|
||||
// 遍历字段并填充 TreeMap
|
||||
for (Field field : fields) {
|
||||
field.setAccessible(true); // 允许访问私有字段
|
||||
Object value = field.get(obj);
|
||||
if (value != null && !String.valueOf(value).isEmpty()) {
|
||||
paramMap.put(field.getName(), String.valueOf(value));
|
||||
}
|
||||
}
|
||||
|
||||
// 使用 StringBuilder 拼接参数字符串
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (Map.Entry<String, String> entry : paramMap.entrySet()) {
|
||||
if (builder.length() > 0) {
|
||||
builder.append("&");
|
||||
}
|
||||
builder.append(entry.getKey())
|
||||
.append("=")
|
||||
.append(entry.getValue());
|
||||
}
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onMessageEvent(PayEvent event) {
|
||||
if (event.getType()==1){
|
||||
ToastUtils.show("支付成功");
|
||||
mBinding.cl.setVisibility(GONE);
|
||||
mBinding.imNoble.setVisibility(GONE);
|
||||
mBinding.t2.setVisibility(GONE);
|
||||
mBinding.recycleView1.setVisibility(GONE);
|
||||
mBinding.tvPayment.setVisibility(GONE);
|
||||
mBinding.llAgreement.setVisibility(GONE);
|
||||
mBinding.recycleView2.setVisibility(GONE);
|
||||
mBinding.tvTs.setVisibility(GONE);
|
||||
mBinding.tv.setVisibility(GONE);
|
||||
|
||||
mBinding.cl2.setVisibility(VISIBLE);
|
||||
mBinding.tvSucess2.setText("恭喜您已成功开通"+name+"爵位");
|
||||
mBinding.tv3.setText(name+"特权");
|
||||
mBinding.tv4.setText("有效期:"+yxq);
|
||||
mBinding.tvPayment2.setOnClickListener(v -> {
|
||||
finish();
|
||||
});
|
||||
ImageUtils.loadHeadCC(imNoble2, mBinding.imNoble2);
|
||||
NoblePrivilegeAdapter adapter = new NoblePrivilegeAdapter();
|
||||
adapter.setNewData(powerItems);
|
||||
mBinding.recycleView3.setLayoutManager(new LinearLayoutManager(this));
|
||||
// 设置到 RecyclerView
|
||||
mBinding.recycleView3.setAdapter(adapter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,288 @@
|
||||
package com.example.modulevocal.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.graphics.LinearGradient;
|
||||
import android.graphics.Shader;
|
||||
import android.os.Bundle;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.HorizontalScrollView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
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 com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.conacts.NobleTitleConacts;
|
||||
import com.example.modulevocal.databinding.ActivityNobleTitleBinding;
|
||||
import com.example.modulevocal.presenter.NobleTitlePresenter;
|
||||
import com.rmondjone.locktableview.LockTableView;
|
||||
import com.rmondjone.xrecyclerview.ProgressStyle;
|
||||
import com.rmondjone.xrecyclerview.XRecyclerView;
|
||||
import com.xscm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.xscm.moduleutil.activity.IPresenter;
|
||||
import com.xscm.moduleutil.base.BaseRoomContacts;
|
||||
import com.xscm.moduleutil.base.CommonAppContext;
|
||||
import com.xscm.moduleutil.bean.*;
|
||||
import com.xscm.moduleutil.dialog.RoomAuctionWebViewDialog;
|
||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.TimeUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
/**
|
||||
* @Description: 爵位展示页面
|
||||
* @Author: qx
|
||||
* @Data: 2022/4/18 21:05
|
||||
*/
|
||||
public class NobleTitleActivity extends BaseMvpActivity<NobleTitlePresenter, ActivityNobleTitleBinding> implements NobleTitleConacts.View {
|
||||
private LinearLayout mContentView;
|
||||
private List<NobilitDeatils.nobilityPowerItem> mNobilityPowerItemList = new ArrayList<>();
|
||||
private String lid;
|
||||
@Override
|
||||
protected void initData() {
|
||||
MvpPre.getNobilityDetail();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
mBinding.ivBack.setColorFilter(getResources().getColor(R.color.white));
|
||||
mBinding.ivBack.setOnClickListener(v -> finish());
|
||||
mBinding.ivIntent.setOnClickListener(v -> {//爵位规则
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "api/Page/page_show?id=29");
|
||||
RoomAuctionWebViewDialog dialog = new RoomAuctionWebViewDialog(this, bundle);
|
||||
dialog.show(); });
|
||||
mContentView = mBinding.contentView;
|
||||
|
||||
mBinding.imMeNobleStatus.setOnClickListener(this::onClick);
|
||||
mBinding.imMeNobleXf.setOnClickListener(this::onClick);
|
||||
mBinding.imSj.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
int id = view.getId();
|
||||
if (id== R.id.im_me_noble_status || id== R.id.im_sj) {
|
||||
Intent intent = new Intent(this, NobleDetailsActivity.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("lid",lid);
|
||||
intent.putExtras( bundle);
|
||||
startActivity(intent);
|
||||
}else if (id== R.id.im_me_noble_xf) {
|
||||
Intent intent = new Intent(this, NoblePaymentActivity.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("lid",lid);
|
||||
intent.putExtras( bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_noble_title;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected NobleTitlePresenter bindPresenter() {
|
||||
return new NobleTitlePresenter(this, this);
|
||||
}
|
||||
|
||||
private void setmContentView() {
|
||||
ArrayList<ArrayList<TableCellData>> mTableDatas = new ArrayList<ArrayList<TableCellData>>();
|
||||
ArrayList<TableCellData> mfristData = new ArrayList<TableCellData>();
|
||||
for (int i = 0; i < mNobilityPowerItemList.size(); i++) {
|
||||
TableCellData mTableCellData = new TableCellData();
|
||||
mTableCellData.setTitle(mNobilityPowerItemList.get(i).getName());
|
||||
mTableCellData.setColor("");
|
||||
mfristData.add(mTableCellData); // 添加各爵位名称
|
||||
}
|
||||
mTableDatas.add(mfristData); // 只添加一次表头
|
||||
|
||||
// 构建每一行的数据
|
||||
if (!mNobilityPowerItemList.isEmpty()) {
|
||||
int maxPrivileges = mNobilityPowerItemList.get(0).getNobility_list().size();
|
||||
|
||||
// 为每个特权构建一行数据
|
||||
for (int j = 0; j < maxPrivileges; j++) {
|
||||
ArrayList<TableCellData> mRowDatas = new ArrayList<TableCellData>();
|
||||
|
||||
// 添加特权名称(第一列)
|
||||
if (j < mNobilityPowerItemList.get(0).getNobility_list().size()) {
|
||||
TableCellData mTableCellData = new TableCellData();
|
||||
mTableCellData.setTitle(mNobilityPowerItemList.get(0).getNobility_list().get(j).getName());
|
||||
mTableCellData.setColor("");
|
||||
mRowDatas.add(mTableCellData);
|
||||
} else {
|
||||
mRowDatas.add(new TableCellData()); // 空白占位
|
||||
}
|
||||
|
||||
// 添加各个爵位对该特权的支持情况
|
||||
for (int i = 1; i < mNobilityPowerItemList.size(); i++) {
|
||||
if (j < mNobilityPowerItemList.get(i).getNobility_list().size()) {
|
||||
NobilitDeatils.nobilityPowerItem nobilityItem = mNobilityPowerItemList.get(i);
|
||||
NobilitDeatils.nobilityPowerItem.nobilityPowerItem nobilityList = nobilityItem.getNobility_list().get(j);
|
||||
|
||||
if ( nobilityList.getId()==2) {
|
||||
if (nobilityItem.getNick_name_color_name() != null && !nobilityItem.getNick_name_color_name().equals("无")) {
|
||||
TableCellData mTableCellData = new TableCellData();
|
||||
mTableCellData.setTitle(nobilityItem.getNick_name_color_name());
|
||||
mTableCellData.setColor(nobilityItem.getNick_name_color());
|
||||
mRowDatas.add(mTableCellData); // 支持
|
||||
}
|
||||
}else {
|
||||
// 根据 status 显示是否支持
|
||||
if (nobilityList.getStatus() == 1) {
|
||||
TableCellData mTableCellData = new TableCellData();
|
||||
mTableCellData.setTitle("1");
|
||||
mTableCellData.setColor("");
|
||||
mRowDatas.add(mTableCellData); // 支持
|
||||
} else {
|
||||
TableCellData mTableCellData = new TableCellData();
|
||||
mTableCellData.setTitle("0");
|
||||
mTableCellData.setColor("");
|
||||
mRowDatas.add(mTableCellData); // 不支持
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mRowDatas.add(new TableCellData()); // 空白占位
|
||||
}
|
||||
}
|
||||
mTableDatas.add(mRowDatas);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final LockTableView mLockTableView = new LockTableView(this, mContentView, mTableDatas);
|
||||
mLockTableView.setLockFristColumn(true) //是否锁定第一列
|
||||
.setLockFristRow(true) //是否锁定第一行
|
||||
.setMaxColumnWidth(79) //列最大宽度
|
||||
.setMinColumnWidth(30) //列最小宽度
|
||||
.setColumnWidth(1, 79) //设置指定列文本宽度
|
||||
.setMinRowHeight(30)//行最小高度
|
||||
.setMaxRowHeight(35)//行最大高度
|
||||
.setTextViewSize(14) //单元格字体大小
|
||||
.setFristRowBackGroudColor(com.xscm.moduleutil.R.color.transparent)//表头背景色
|
||||
.setTableHeadTextColor(com.xscm.moduleutil.R.color.white)//表头字体颜色
|
||||
.setTableContentTextColor(com.xscm.moduleutil.R.color.white)//单元格字体颜色
|
||||
.setCellPadding(5)//设置单元格内边距(dp)
|
||||
// .setNullableString("N/A") //空值替换值
|
||||
.setTableViewListener(new LockTableView.OnTableViewListener() {
|
||||
@Override
|
||||
public void onTableViewScrollChange(int x, int y) {
|
||||
// Log.e("滚动值","["+x+"]"+"["+y+"]");
|
||||
}
|
||||
})//设置横向滚动回调监听
|
||||
.setTableViewRangeListener(new LockTableView.OnTableViewRangeListener() {
|
||||
@Override
|
||||
public void onLeft(HorizontalScrollView view) {
|
||||
Log.e("滚动边界", "滚动到最左边");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRight(HorizontalScrollView view) {
|
||||
Log.e("滚动边界", "滚动到最右边");
|
||||
}
|
||||
})//设置横向滚动边界监听
|
||||
.show(); //显示表格,此方法必须调用
|
||||
mLockTableView.getTableScrollView().setPullRefreshEnabled(false);
|
||||
mLockTableView.getTableScrollView().setLoadingMoreEnabled(false);
|
||||
mLockTableView.getTableScrollView().setRefreshProgressStyle(ProgressStyle.SquareSpin);
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
@Override
|
||||
public void getNobilityDetail(NobilitDeatils nobilitDeatils) {
|
||||
ImageUtils.loadHeadCC(nobilitDeatils.getUser_info().getAvatar(), mBinding.ciUserImage);
|
||||
mBinding.tvUserName.setText(nobilitDeatils.getUser_info().getNickname());
|
||||
if (nobilitDeatils.getNobility_info().getStatus() == 0) {
|
||||
mBinding.tvUserLv.setText("暂未开通任何爵位");
|
||||
mBinding.imMeNobleStatus.setImageResource(com.xscm.moduleutil.R.mipmap.me_noble_no);
|
||||
mBinding.tvUserStatus.setText("您尚未开通任何爵位");
|
||||
mBinding.imMeNobleXf.setVisibility(GONE);
|
||||
mBinding.imSj.setVisibility(GONE);
|
||||
mBinding.ciImage2.setVisibility(GONE);
|
||||
mBinding.tvMeX.setVisibility(GONE);
|
||||
mBinding.imKt.setVisibility(GONE);
|
||||
} else {
|
||||
lid=nobilitDeatils.getNobility_info().getLid()+"";
|
||||
mBinding.tvUserLv.setText("的爵位");
|
||||
mBinding.imMeNobleStatus.setVisibility(GONE);
|
||||
ImageUtils.loadHeadCC(nobilitDeatils.getNobility_info().getImage(), mBinding.imNoble);
|
||||
mBinding.imMeNobleXf.setVisibility(VISIBLE);
|
||||
mBinding.tvMeNobleLv.setVisibility(VISIBLE);
|
||||
mBinding.tvUserStatus.setText("截止时间:" + nobilitDeatils.getNobility_info().getEnd_time());
|
||||
mBinding.tvMeNobleLv.setText(nobilitDeatils.getNobility_info().getName());
|
||||
applyGradientToTextView(mBinding.tvMeNobleLv);
|
||||
mBinding.imSj.setVisibility(VISIBLE);
|
||||
mBinding.ciImage2.setVisibility(VISIBLE);
|
||||
mBinding.tvMeX.setVisibility(VISIBLE);
|
||||
mBinding.imKt.setVisibility(VISIBLE);
|
||||
ImageUtils.loadHeadCC(nobilitDeatils.getUser_info().getAvatar(), mBinding.ciImage2);
|
||||
String nickname = nobilitDeatils.getUser_info().getNickname();
|
||||
String displayNickname = nickname.length() > 3 ? nickname.substring(0, 3) + ".." : nickname;
|
||||
mBinding.tvMeX.setText(displayNickname + "的当前爵位状态是" + nobilitDeatils.getNobility_info().getName());
|
||||
// mBinding.tvMeX.setText(nobilitDeatils.getUser_info().getNickname()+"的当前爵位状态是"+nobilitDeatils.getNobility_info().getName());
|
||||
|
||||
}
|
||||
|
||||
mNobilityPowerItemList = nobilitDeatils.getNobility_power_list();
|
||||
setmContentView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityList(List<NobilitList> nobilitLists) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindType(BindType bindType) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appPay(AppPay appPay) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityPrice(NobilityPrice nobilityPrice) {
|
||||
|
||||
}
|
||||
|
||||
// 在 Activity 或 Fragment 中
|
||||
private void applyGradientToTextView(TextView textView) {
|
||||
ViewTreeObserver vto = textView.getViewTreeObserver();
|
||||
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
int width = textView.getWidth();
|
||||
int height = textView.getHeight();
|
||||
if (width > 0) {
|
||||
LinearGradient gradient = new LinearGradient(
|
||||
0, 0, 0, height,
|
||||
new int[]{0xFFA292FF,0xFFA292FF, 0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF, 0xFFA292FF,0xFFA292FF},
|
||||
new float[]{0f,0.2f,0.5f, 0.5f,0.5f, 0.8f, 1f} ,
|
||||
Shader.TileMode.MIRROR
|
||||
);
|
||||
textView.getPaint().setShader(gradient);
|
||||
textView.invalidate();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import android.app.Activity;
|
||||
import com.xscm.moduleutil.activity.IPresenter;
|
||||
import com.xscm.moduleutil.activity.IView;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.activity.ui.main
|
||||
* qx
|
||||
* 2025/11/5
|
||||
*/
|
||||
public class GiftWallConacts {
|
||||
public interface View extends IView<Activity> {
|
||||
void setGiftWall(GiftUserWallBean data);
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
|
||||
void giftWall(String userId);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.example.modulevocal.conacts;
|
||||
|
||||
import android.app.Activity;
|
||||
import com.xscm.moduleutil.activity.IPresenter;
|
||||
import com.xscm.moduleutil.activity.IView;
|
||||
import com.xscm.moduleutil.bean.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.conacts
|
||||
* qx
|
||||
* 2025/11/8
|
||||
*/
|
||||
public class NobleTitleConacts {
|
||||
|
||||
public interface View extends IView<Activity> {
|
||||
void getNobilityDetail(NobilitDeatils nobilitDeatils);
|
||||
|
||||
void getNobilityList(List<NobilitList> nobilitLists);
|
||||
|
||||
void bindType(BindType bindType);
|
||||
|
||||
void appPay(AppPay appPay);
|
||||
|
||||
void getNobilityPrice(NobilityPrice nobilityPrice);
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
void getNobilityDetail();
|
||||
|
||||
void getNobilityList();
|
||||
|
||||
void bindType(String userId);
|
||||
|
||||
void appPay(String user_id, String money, String type, String type_id);
|
||||
|
||||
void getNobilityPrice(String id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.GridView;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import com.example.modulevocal.databinding.FragmentGiftWallBinding;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A placeholder fragment containing a simple view.
|
||||
*/
|
||||
public class PlaceholderFragment extends Fragment {
|
||||
|
||||
private static final String ARG_SECTION_NUMBER = "section_number";
|
||||
|
||||
private PageViewModel pageViewModel;
|
||||
private FragmentGiftWallBinding binding;
|
||||
|
||||
private GiftWallAdapter mGiftWallAdapter;
|
||||
|
||||
public static PlaceholderFragment newInstance(int index) {
|
||||
PlaceholderFragment fragment = new PlaceholderFragment();
|
||||
// Bundle bundle = new Bundle();
|
||||
// bundle.putInt(ARG_SECTION_NUMBER, index);
|
||||
// fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull @NotNull Context context) {
|
||||
super.onAttach(context);
|
||||
pageViewModel = new ViewModelProvider(this).get(PageViewModel.class);
|
||||
int index = 1;
|
||||
if (getArguments() != null) {
|
||||
index = getArguments().getInt(ARG_SECTION_NUMBER);
|
||||
|
||||
// 获取传递的礼物列表数据
|
||||
List<GiftUserWallBean.GiftWallBean> giftList =
|
||||
(List<GiftUserWallBean.GiftWallBean>) getArguments().getSerializable("gift_list");
|
||||
|
||||
// 将数据设置到 ViewModel
|
||||
if (giftList != null) {
|
||||
if (index == 1){
|
||||
pageViewModel.setLiangDataList(giftList);
|
||||
}else if (index == 2){
|
||||
pageViewModel.setNoLiangDataList(giftList);
|
||||
}
|
||||
}
|
||||
}
|
||||
pageViewModel.setIndex(index);
|
||||
|
||||
mGiftWallAdapter= new GiftWallAdapter(new ArrayList<>());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(
|
||||
@NonNull LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
binding = FragmentGiftWallBinding.inflate(inflater, container, false);
|
||||
View root = binding.getRoot();
|
||||
// 设置 GridView
|
||||
GridView gridView = binding.gridView;
|
||||
gridView.setAdapter(mGiftWallAdapter);
|
||||
// 观察数据变化并更新 GridView
|
||||
pageViewModel.getDataList().observe(getViewLifecycleOwner(), dataList -> {
|
||||
if (dataList != null) {
|
||||
mGiftWallAdapter.updateData(dataList);
|
||||
}
|
||||
});
|
||||
return root;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
binding = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import android.content.Context;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.http.BaseObserver;
|
||||
import com.xscm.moduleutil.presenter.BasePresenter;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.activity.ui.main
|
||||
* qx
|
||||
* 2025/11/5
|
||||
*/
|
||||
public class GiftWallPresenter extends BasePresenter<GiftWallConacts.View> implements GiftWallConacts.IMePre{
|
||||
public GiftWallPresenter(GiftWallConacts.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void giftWall(String userId) {
|
||||
api.giftWall(userId, new BaseObserver<GiftUserWallBean>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(GiftUserWallBean giftBeans) {
|
||||
MvpRef.get().setGiftWall(giftBeans);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.example.modulevocal.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
import com.example.modulevocal.conacts.MeConacts;
|
||||
import com.example.modulevocal.conacts.NobleTitleConacts;
|
||||
import com.xscm.moduleutil.bean.*;
|
||||
import com.xscm.moduleutil.http.BaseObserver;
|
||||
import com.xscm.moduleutil.presenter.BasePresenter;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.presenter
|
||||
* qx
|
||||
* 2025/11/8
|
||||
*/
|
||||
public class NobleTitlePresenter extends BasePresenter<NobleTitleConacts.View> implements NobleTitleConacts.IMePre{
|
||||
private NobleTitleConacts.View mView;
|
||||
public NobleTitlePresenter(NobleTitleConacts.View view, Context context) {
|
||||
super(view, context);
|
||||
mView = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityDetail() {
|
||||
api.getNobilityDetail(new BaseObserver<NobilitDeatils>() {
|
||||
@Override
|
||||
public void onSubscribe(@NotNull Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NotNull NobilitDeatils nobilitDeatils) {
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
MvpRef.get().getNobilityDetail(nobilitDeatils);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityList() {
|
||||
api.getNobilityList(new BaseObserver<List<NobilitList>>(){
|
||||
|
||||
@Override
|
||||
public void onSubscribe(@NotNull Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NotNull List<NobilitList> nobilitLists) {
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
MvpRef.get().getNobilityList(nobilitLists);
|
||||
}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void bindType(String userId) {
|
||||
api.bindType(userId, new BaseObserver<BindType>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BindType bindType) {
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
MvpRef.get().bindType(bindType);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appPay(String user_id, String money, String type, String nobility_id) {
|
||||
api.appPay(user_id, money, "", type,"","",nobility_id, new BaseObserver<AppPay>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(AppPay appPay) {
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
MvpRef.get().appPay(appPay);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getNobilityPrice(String id) {
|
||||
api.getNobilityPrice(id, new BaseObserver<NobilityPrice>() {
|
||||
@Override
|
||||
public void onSubscribe(@NotNull Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NotNull NobilityPrice nobilityPrice) {
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
MvpRef.get().getNobilityPrice(nobilityPrice);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.adapter.TopUsersAdapter;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
|
||||
import com.xscm.moduleutil.utils.ColorManager;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.activity.ui.main
|
||||
* qx
|
||||
* 2025/11/5
|
||||
*/
|
||||
public class GiftWallAdapter extends BaseAdapter {
|
||||
private List<GiftUserWallBean.GiftWallBean> mDataList;
|
||||
|
||||
public GiftWallAdapter(List<GiftUserWallBean.GiftWallBean> dataList) {
|
||||
this.mDataList = dataList;
|
||||
}
|
||||
|
||||
public void updateData(List<GiftUserWallBean.GiftWallBean> newDataList) {
|
||||
this.mDataList = newDataList;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mDataList != null ? mDataList.size() : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getItem(int position) {
|
||||
return mDataList.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
// 实现 GridView item 的布局和数据绑定
|
||||
// 这里返回每个 GridView 项的视图
|
||||
ViewHolder holder;
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_gift_wall, parent, false);
|
||||
holder = new ViewHolder();
|
||||
holder.textView = convertView.findViewById(R.id.tv_gift_name);
|
||||
holder.iv_gift_image = convertView.findViewById(R.id.iv_gift_image);
|
||||
holder.gift_num = convertView.findViewById(R.id.gift_num);
|
||||
holder.tv_price33 = convertView.findViewById(R.id.tv_price33);
|
||||
holder.rv_gift_user_list = convertView.findViewById(R.id.rv_gift_user_list);
|
||||
holder.tv_gift_values = convertView.findViewById(R.id.tv_gift_values);
|
||||
holder.cl_gift_item = convertView.findViewById(R.id.cl_gift_item);
|
||||
convertView.setTag(holder);
|
||||
} else {
|
||||
holder = (ViewHolder) convertView.getTag();
|
||||
}
|
||||
|
||||
GiftUserWallBean.GiftWallBean item = mDataList.get(position);
|
||||
holder.textView.setText(item.getGift_name());
|
||||
// ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image);
|
||||
holder.tv_price33.setText(item.getGift_price());
|
||||
|
||||
|
||||
TextView tv_number = holder.gift_num;
|
||||
if (item.is_liang()) {
|
||||
holder.tv_gift_values.setVisibility(View.VISIBLE);
|
||||
holder.gift_num.setVisibility(View.VISIBLE);
|
||||
holder.rv_gift_user_list.setVisibility(View.VISIBLE);
|
||||
holder.cl_gift_item.setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_wall_liang);
|
||||
// helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6"));
|
||||
// 点亮的礼物显示高亮和送礼物的用户
|
||||
tv_number.setText("共计" + item.getTotal_count() + "个");
|
||||
ImageUtils.loadHeadCC(item.getBase_image(), holder.iv_gift_image);
|
||||
// 显示送礼物的用户列表
|
||||
RecyclerView recyclerView = holder.rv_gift_user_list;
|
||||
// recyclerView.setLayoutManager(new GridLayoutManager(mContext,2,LinearLayoutManager.HORIZONTAL,false));
|
||||
// recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(convertView.getContext(), LinearLayoutManager.HORIZONTAL, false) {
|
||||
@Override
|
||||
public boolean canScrollHorizontally() {
|
||||
return false; // 禁止水平滑动
|
||||
}
|
||||
});
|
||||
|
||||
// TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users());
|
||||
if (item.getTop_users() != null && item.getTop_users().size() > 0) {
|
||||
List<CombinedGiftBean.TopUsers> displayUsers = new ArrayList<>();
|
||||
if (item.getTop_users() != null) {
|
||||
int maxDisplay = Math.min(2, item.getTop_users().size()); // 最多显示2个
|
||||
for (int i = 0; i < maxDisplay; i++) {
|
||||
displayUsers.add(item.getTop_users().get(i));
|
||||
}
|
||||
}
|
||||
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers);
|
||||
recyclerView.setAdapter(topUsersAdapter);
|
||||
holder.tv_gift_values.setText("等" + item.getTop_users().size() + "人");
|
||||
}
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
holder.cl_gift_item.setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_wall_no_liang);
|
||||
ImageLoader.loadImage(convertView.getContext(), holder.iv_gift_image, item.getBase_image(),0.4f);
|
||||
holder.tv_gift_values.setVisibility(View.GONE);
|
||||
holder.gift_num.setVisibility(View.GONE);
|
||||
holder.rv_gift_user_list.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
static class ViewHolder {
|
||||
TextView textView;
|
||||
ImageView iv_gift_image;
|
||||
|
||||
TextView tv_gift_values;
|
||||
TextView gift_num;
|
||||
TextView tv_price33;
|
||||
RecyclerView rv_gift_user_list;
|
||||
|
||||
ConstraintLayout cl_gift_item;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.activity.ui.main.GiftWallAdapter;
|
||||
import com.xscm.moduleutil.bean.CombinedGiftBean;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
import com.xscm.moduleutil.bean.NobilitList;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.widget.CircularImage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.adapter
|
||||
* qx
|
||||
* 2025/11/10
|
||||
*/
|
||||
public class GridNobleAdapter extends BaseAdapter {
|
||||
private List<NobilitList.Power.PowerItem> mDataList;
|
||||
|
||||
public GridNobleAdapter(List<NobilitList.Power.PowerItem> dataList) {
|
||||
this.mDataList = dataList;
|
||||
}
|
||||
|
||||
public GridNobleAdapter() {
|
||||
|
||||
}
|
||||
|
||||
public void updateData(List<NobilitList.Power.PowerItem> newDataList) {
|
||||
this.mDataList = newDataList;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mDataList != null ? mDataList.size() : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getItem(int position) {
|
||||
return mDataList.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
// 实现 GridView item 的布局和数据绑定
|
||||
// 这里返回每个 GridView 项的视图
|
||||
ViewHolder holder;
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_noble_tq, parent, false);
|
||||
holder = new ViewHolder();
|
||||
holder.tv_hz_mc = convertView.findViewById(R.id.tv_hz_mc);
|
||||
holder.ci_image = convertView.findViewById(R.id.ci_image);
|
||||
holder.tv_hz_detail = convertView.findViewById(R.id.tv_hz_detail);
|
||||
convertView.setTag(holder);
|
||||
} else {
|
||||
holder = (ViewHolder) convertView.getTag();
|
||||
}
|
||||
|
||||
NobilitList.Power.PowerItem item = mDataList.get(position);
|
||||
holder.tv_hz_detail.setText(item.getContent());
|
||||
holder.tv_hz_mc.setText(item.getName());
|
||||
ImageUtils.loadHeadCC(item.getImage(), holder.ci_image);
|
||||
|
||||
|
||||
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
static class ViewHolder {
|
||||
TextView tv_hz_mc;
|
||||
CircularImage ci_image;
|
||||
|
||||
TextView tv_hz_detail;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevocal.R;
|
||||
import com.xscm.moduleutil.bean.NobilityPrice;
|
||||
|
||||
/**
|
||||
* com.example.modulevocal.adapter
|
||||
* qx
|
||||
* 2025/11/10
|
||||
*/
|
||||
// NoblePrivilegeAdapter.java
|
||||
public class NoblePrivilegeAdapter extends BaseQuickAdapter<NobilityPrice.PowerItem, BaseViewHolder> {
|
||||
|
||||
public NoblePrivilegeAdapter() {
|
||||
super(R.layout.item_noble_privilege);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, NobilityPrice.PowerItem item) {
|
||||
helper.setText(R.id.tv_title, item.getContent());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import com.example.modulevocal.R;
|
||||
import com.xscm.moduleutil.bean.NobilitList;
|
||||
import com.xscm.moduleutil.bean.TopRoom;
|
||||
import com.xscm.moduleutil.utils.ImageLoader;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.zhpan.bannerview.BaseBannerAdapter;
|
||||
import com.zhpan.bannerview.BaseViewHolder;
|
||||
|
||||
/**
|
||||
*com.example.modulevocal.adapter
|
||||
*qx
|
||||
*2025/11/10
|
||||
*
|
||||
*/
|
||||
public class NobliityBannerAdapter extends BaseBannerAdapter<NobilitList> {
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
private int mCurrentPosition;
|
||||
|
||||
public int getmCurrentPosition() {
|
||||
return mCurrentPosition;
|
||||
}
|
||||
|
||||
public void setmCurrentPosition(int mCurrentPosition) {
|
||||
this.mCurrentPosition = mCurrentPosition;
|
||||
}
|
||||
|
||||
public void setOnItemClickListener(OnItemClickListener listener) {
|
||||
this.onItemClickListener = listener;
|
||||
}
|
||||
@Override
|
||||
protected void bindData(BaseViewHolder<NobilitList> holder, NobilitList data, int position, int pageSize) {
|
||||
if (position>=mCurrentPosition) {
|
||||
ImageUtils.loadHeadCC(data.getImage(), holder.itemView.findViewById(R.id.iv_follow_bg));
|
||||
// ImageLoader.loadImage(holder.itemView.getContext(),holder.itemView.findViewById(R.id.iv_follow_bg),data.getImage(),1f);
|
||||
}else {
|
||||
ImageLoader.loadImage(holder.itemView.getContext(),holder.itemView.findViewById(R.id.iv_follow_bg),data.getImage(),0f);
|
||||
}
|
||||
}
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void onItemClick(View view, TopRoom data, int position);
|
||||
}
|
||||
@Override
|
||||
public int getLayoutId(int viewType) {
|
||||
return R.layout.index_item_nobli;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.example.modulevocal.activity.ui.main;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.fragment.app.*;
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||
import com.xscm.moduleutil.bean.GiftUserWallBean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* A [FragmentPagerAdapter] that returns a fragment corresponding to
|
||||
* one of the sections/tabs/pages.
|
||||
*/
|
||||
public class SectionsPagerAdapter extends FragmentStateAdapter {
|
||||
|
||||
@StringRes
|
||||
private static final int[] TAB_TITLES = new int[]{com.xscm.moduleutil.R.string.tab_text_1, com.xscm.moduleutil.R.string.tab_text_2};
|
||||
private final Context mContext;
|
||||
private GiftUserWallBean giftData; // 添加数据字段
|
||||
|
||||
// public SectionsPagerAdapter(Context context, FragmentManager fm, GiftUserWallBean giftData) {
|
||||
// super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
|
||||
// this.mContext = context;
|
||||
// this.giftData = giftData;
|
||||
// }
|
||||
|
||||
public SectionsPagerAdapter(@NonNull FragmentActivity fragmentActivity, GiftUserWallBean giftData) {
|
||||
super(fragmentActivity);
|
||||
this.mContext = fragmentActivity;
|
||||
this.giftData = giftData;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Fragment createFragment(int position) {
|
||||
// 创建 Fragment 实例并传递参数
|
||||
PlaceholderFragment fragment = PlaceholderFragment.newInstance(position + 1);
|
||||
Bundle args = new Bundle();
|
||||
|
||||
// 根据位置传递不同的数据
|
||||
if (giftData != null) {
|
||||
if (position == 0) {
|
||||
// 传递 liang 数据
|
||||
args.putSerializable("gift_list", (Serializable) giftData.getLiang());
|
||||
} else if (position == 1) {
|
||||
// 传递 no_liang 数据
|
||||
args.putSerializable("gift_list", (Serializable) giftData.getNo_liang());
|
||||
}
|
||||
}
|
||||
args.putInt("section_number", position+1);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return 2; // 假设 GiftUserWallBean 包含 list 数据结构
|
||||
}
|
||||
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return mContext.getResources().getString(TAB_TITLES[position]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user