切换

本文介绍了一款购物应用的UI设计及交互逻辑实现,重点展示了使用Android平台进行商品展示页面的开发过程。包括了列表视图与网格视图的切换、搜索功能、排序筛选等关键特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package zjc.com.yuekaomoni.view;

import android.content.Intent;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.List;

import zjc.com.yuekaomoni.DetailActivity;
import zjc.com.yuekaomoni.R;
import zjc.com.yuekaomoni.adapters.ShoppingRecycleAdapter;
import zjc.com.yuekaomoni.base.BaseActivity;
import zjc.com.yuekaomoni.bean.ShoppingBean;
import zjc.com.yuekaomoni.model.ModelImpel;
import zjc.com.yuekaomoni.presenter.PresenterImpel;
import zjc.com.yuekaomoni.view.view.IShoppingView;

public class ShoppingActivity extends BaseActivity implements View.OnClickListener,IShoppingView{
    private static final String TAG = "ShoppingActivity---"; 
    private String tvName;
    private ImageView back;
    private ImageView select;
    private EditText etName;
    private ImageView xx;
    private ImageView diss;
    private Button tvZhonghe;
    private Button tvXiaoliang;
    private Button tvPrice;
    private int page=1;
    private String sort="0";
    private ShoppingRecycleAdapter shoppingRecycleAdapter;
    private XRecyclerView xRecyclerView;
    private PresenterImpel presenterImpel;
    private String name;
    private boolean b = false;

    @Override
    protected void initData() {
        //得到intent
        Intent intent = getIntent ();

        //判断
        if (intent != null) {
            tvName = intent.getStringExtra ("name");

            Log.d (TAG, "onCreate:(数据信息-----) " + tvName);
        }

        presenterImpel = new PresenterImpel ();

        //赋值
        etName.setText (tvName);

        xRecyclerView.setLoadingListener (new XRecyclerView.LoadingListener () {
            @Override
            public void onRefresh() {
                page ++;

                presenterImpel.getShop (new ModelImpel (),ShoppingActivity.this);

                xRecyclerView.refreshComplete();
            }

            @Override
            public void onLoadMore() {
                page++;

                presenterImpel.getShop (new ModelImpel (),ShoppingActivity.this);

                xRecyclerView.loadMoreComplete();
            }
        });
    }

    @Override
    protected void initView() {
        //得到控件
        back = findViewById (R.id.back);

        xRecyclerView = findViewById (R.id.xrecycle);

        select = findViewById (R.id.select);

        etName = findViewById (R.id.et_name);

        xx = findViewById (R.id.Xx);

        diss = findViewById (R.id.diss);

        tvZhonghe = findViewById (R.id.tvZhonghe);

        tvXiaoliang = findViewById (R.id.tvXiaoliang);

        tvPrice = findViewById (R.id.tvPrice);

        back.setOnClickListener (this);
        select.setOnClickListener (this);
        xx.setOnClickListener (this);
        diss.setOnClickListener (this);
        tvZhonghe.setOnClickListener (this);
        tvXiaoliang.setOnClickListener (this);
        tvPrice.setOnClickListener (this);
    }

    @Override
    protected int createView() {
        //返回布局
        return R.layout.activity_shopping;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId ()){
            case R.id.back://返回

                finish ();

                break;
            case R.id.select://查询
                //获取输入框内容
                name = etName.getText ().toString ();

                presenterImpel.getShop (new ModelImpel (),ShoppingActivity.this);

                break;
            case R.id.Xx://取消

                //清空
                etName.getText ().clear ();

                break;
            case R.id.diss://切换
                if (b == false) {
                    //点击后想要变成什么要的布局样式就搞一个你的需求
                    xRecyclerView .setLayoutManager(new GridLayoutManager (ShoppingActivity.this, 2));

                    //给布尔值重新赋值
                    b = true;

                    //给点击按钮的图片重新赋值
                    diss.setImageResource(R.mipmap.ac3);
                } else if (b == true) {
                    xRecyclerView.setLayoutManager(new LinearLayoutManager(ShoppingActivity.this));

                    //给布尔值重新赋值
                    b = false;
                    diss.setImageResource(R.mipmap.kind_grid);

                    //给点击按钮的图片重新赋值
                    /*   cIv.setImageResource(R.mipmap.ic_grid);*/
                }
                break;
            case R.id.tvZhonghe://综合
                sort = "0";

                presenterImpel.getShop (new ModelImpel (),ShoppingActivity.this);
                break;
            case R.id.tvXiaoliang://销量
                sort = "1";

                presenterImpel.getShop (new ModelImpel (),ShoppingActivity.this);
                break;
            case R.id.tvPrice://价格
                sort = "2";

                presenterImpel.getShop (new ModelImpel (),ShoppingActivity.this);
                break;
        }
    }

    @Override
    public void ShowShoppingToViews(List<ShoppingBean.DataBean> data) {
        Log.d (TAG, "ShowShoppingToViews:数据信息---- "+data);

        //设置适配器
        shoppingRecycleAdapter = new ShoppingRecycleAdapter (this, data);

        xRecyclerView.setLayoutManager (new LinearLayoutManager (this));

        xRecyclerView.setAdapter (shoppingRecycleAdapter);

        shoppingRecycleAdapter.setOnClickItemListener(new ShoppingRecycleAdapter.OnClickItemListener() {
            @Override
            public void onItemClick(View v, int position) {
                startActivity(new Intent(ShoppingActivity.this, DetailActivity.class));
            }
        });
    }

    //输入框内容
    @Override
    public String getName() {
        return name;
    }

    //页数
    @Override
    public int getPage() {
        return page;
    }

    //排序参数值
    @Override
    public String getSort() {
        return sort;
    }
}
 

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值