Android实现点击切换视图并跳转传值

1,MainActivity的xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

<com.example.tiamo.weeklianxi.view.HeadView
       android:id="@+id/headview"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">

</com.example.tiamo.weeklianxi.view.HeadView>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#fff"
            android:text="销量"
            />
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#fff"
            android:text="销量"
            />
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#fff"
            android:text="销量"
            />
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#fff"
            android:text="销量"
            />
    </LinearLayout>

<com.jcodecraeer.xrecyclerview.XRecyclerView
    android:id="@+id/xresycle"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</com.jcodecraeer.xrecyclerview.XRecyclerView>

</LinearLayout>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2.MainActivity
public class MainActivity extends AppCompatActivity implements IView {

private IPersenterImpl iPersenter;
String path ="searchProducts";
private XRecyclerView xRecyclerView;
HeadView headView;
private BeanAdapter adapter;
private int page;
private boolean isLinear = true;
private Object message;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    iPersenter = new IPersenterImpl(this);
    page = 1;
    init();
    //注册
    EventBus.getDefault().register(this);

}

private void init() {
    xRecyclerView = findViewById(R.id.xresycle);
    headView = findViewById(R.id.headview);

//点击头部进行切换
    headView.setOnClick(new HeadView.OnClick() {
        @Override
        public void Click() {
            List<GoodsBean.DataBean> data = adapter.getData();
            changeLiGr();
            adapter.setData(data);
        }
    });
    //改变头部文字重新请求
    headView.setGetEdText(new HeadView.getEdText() {
        @Override
        public void getName(String name) {
            page = 1;
            initData(name,page);
        }
    });

//刷新加载
    xRecyclerView.setLoadingMoreEnabled(true);
    xRecyclerView.setPullRefreshEnabled(true);
    changeLiGr();
    xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
        @Override
        public void onRefresh() {
            page = 1;
            initData(message+"",page);
        }

@Override
        public void onLoadMore() {
            initData(message+"",page);
        }
    });

}
//改变状态
private void changeLiGr(){
    if (isLinear){
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        xRecyclerView.setLayoutManager(layoutManager);
    }else{
        GridLayoutManager manager = new GridLayoutManager(this,2);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        xRecyclerView.setLayoutManager(manager);
    }
    adapter = new BeanAdapter(this,isLinear);
    xRecyclerView.setAdapter(adapter);
    adapter.setOnClick(new BeanAdapter.OnClick() {
        @Override
        public void click(int pid) {
            Intent intent = new Intent(MainActivity.this,LoginActivity.class);
            intent.putExtra("pid",pid);
            startActivity(intent);
        }
    });
    //状态反选
    isLinear = !isLinear;
}

//请求
private void initData(String name,int page) {
    Map<String,String> pamars = new HashMap<>();
    pamars.put("keywords",name);
    pamars.put("page",page+"");
    iPersenter.showRequestData(path,pamars,GoodsBean.class);
}

//得到粘性事件
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void getName(EventBusBean eventBusBean){
    if (eventBusBean.getId() == 1) {
        message = eventBusBean.getMessage();
        initData(eventBusBean.getMessage().toString(), page);
    }
}

@Override
public void startRequestData(Object data) {
    if (data instanceof GoodsBean){
        GoodsBean bean = (GoodsBean) data;
        if (page == 1){
            adapter.setData(bean.getData());
        }else{
            adapter.addData(bean.getData());
        }
        page++;
        xRecyclerView.refreshComplete();
        xRecyclerView.loadMoreComplete();;
    }
}

//解绑
@Override
protected void onDestroy() {
    super.onDestroy();
    iPersenter.onDestory();
    EventBus.getDefault().unregister(this);
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android实现加载状态视图切换效果

    关于Android加载状态视图切换,具体内容如下 1.关于Android界面切换状态的介绍 怎样切换界面状态?有些界面想定制自定义状态?状态如何添加点击事件?下面就为解决这些问题! 内容界面 加载数据中 加载数据错误 加载后没有数据 没有网络 2.思路转变,抽取分离类管理几种状态 以前做法: 直接把这些界面include到main界面中,然后动态去切换界面,后来发现这样处理不容易复用到其他项目中,而且在activity中处理这些状态的显示和隐藏比较乱 利用子类继承父类特性,在父类中写切换状态,但

  • Android中的ViewPager视图滑动切换类的入门实例教程

    ViewPager引入示例 首先让大家有个全局的认识,直接上个项目,看看仅仅通过这几行代码,竟然就能完成如此强悍的功能. 效果图: 实现了三个view间的相互滑动. 第一个VIEW向第二个VIEW滑动.第二个VIEW向第三个VIEW滑动 一.新建项目,引入ViewPager控件 ViewPager.它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换. 1.在主布局文件里加入 <RelativeLayout xmlns:android="http://schemas

  • Android实现点击切换视图并跳转传值

    1,MainActivity的xml布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools=&

  • Android开发实现按钮点击切换背景并修改文字颜色的方法

    本文实例讲述了Android开发实现按钮点击切换背景并修改文字颜色的方法.分享给大家供大家参考,具体如下: 其实原理很简单,用到的是selector,用来设置android:background和android:textcolor属性,selector可以用来设置默认时候.点击时候的背景图片和文字颜色的属性,过程如下: 这两个文件如下: 1.当点击按钮,改变文字的颜色: <?xml version="1.0" encoding="utf-8"?> <

  • Android可自定义神奇动效的卡片切换视图实例

    前言 面对众多卡片层叠效果,我们的产品童鞋也突发奇想,搞出了另一种卡片层叠切换展示的交互,而且产品狗们居然要求多做几种动效给他们看,好让他们选择,这简直就是要搞事情啊,what are you 弄啥咧?! "哥哥我做不到啊.....啊.....呸",做为一名有节操的程序猿,自然是不能说出这么没有出息的话,哥就满足你们,于是,出了个可自定义动效的卡片切换视图,效果如下所示 思路 首先,要展示出卡片层叠的视觉效果.在这里,我们通过方块的缩放大小差异以及在Y方向上的位置差异,来展现这种视觉效

  • Android仿微信左右滑动点击切换页面和图标

    本文实例为大家分享了Android仿微信左右滑动点击切换页面和图标的具体代码,供大家参考,具体内容如下 目标效果: 使用鼠标滑动屏幕或者点击下边的小图标,可以更改页面和图标,因为没有那么多素材所以只用了两张图片区分. 1.layout文件夹下新建top.xml页面,作为顶部标题. top.xml页面: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="h

  • Android开发实现的图片点击切换功能示例

    本文实例讲述了Android开发实现的图片点击切换功能.分享给大家供大家参考,具体如下: java 代码 public class MainActivity extends AppCompatActivity { //定义一个访问图片的数组 int[] images = new int[]{ R.drawable.java, R.drawable.javaee, R.drawable.swift, R.drawable.ajax, R.drawable.html, }; //用于图片切换 int

  • 浅析iOS多视图滑动点击切换的集成

    前言 多视图滑动点击切换这个视图在很多App都有用到,我对这个View进行了封装,外界只需要调用一个接口,就能实现这个效果,使用方法和系统的tabbarController很相似. 外界只需要调用下面这个接口即可集成. /** * 添加一个子控制器 */ - (void)addSubItemWithViewController:(UIViewController *)viewController; HYTabbarView效果图如下 HYTabbarView可灵活配置一屏宽显示多少个标题,以及标

  • Android studio点击跳转WebView详解

    本文实例为大家分享了Android studio点击跳转WebView的具体代码,供大家参考,具体内容如下 代码文件 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.

  • android实现点击按钮控制图片切换

    本文实例为大家分享了android实现点击按钮控制图片切换的具体代码,供大家参考,具体内容如下 代码: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initView() } private fun ini

  • Android实现简单底部导航栏 Android仿微信滑动切换效果

    Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏的设置方法类似于TabLayout的关联,View需要创建关联方法,用来关联VIewPager; 3. 通过关联方法获取ViewPager实例后,根据ViewPager页面数创建底部导航栏的图标按钮; 代码实现: 1. 新建第一个自定义View, 图标 + 文字 的底部按钮; /** * 自定义控件

  • Android编程之页面切换测试实例

    本文实例讲述了Android编程之页面切换测试.分享给大家供大家参考.具体分析如下: 一.软件平台: win7 + eclipse + sdk 二.设计思路: 两个页面:mian和ok,每个页面上有一个按键,点击则可以互相切换 三.源代码: main.xml源代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

随机推荐