recyclerview的页面跳转设计和activity的生命周期

代码地址lt/wechatjiemian - Gitee.com

一、RecyclerView基本概念
RecyclerView是Android 5.0推出的,是support-v7包中的新组件,它被用来代替ListView和GridView,并且能够实现瀑布流的布局,更加高级并且更加灵活,提供更为高效的回收复用机制,同时实现管理与视图的解耦合。
我们今天要做的是在原有的类微信界面上选择一个tab添加RecyclerView设计实现纵向布局浏览界面。
RecyclerView中点击item跳转到其他Activity并显示item内容如何实现?
分开来讲:
1,RecyclerView中点击item,看代码你已经实现了。
2,跳转到其他Activity,看代码你也已经实现了。
3,跳转到其他Activity并显示item内容(数据处理)
// Intent intent=new Intent();
// Intent intent=new Intent(mContext,ChatActivity.class);
// intent.putExtra("friend",msg.getFriend().toString());
// mContext.startActivity(intent);

此次在微信tab页添加列表,因此可以直接在fragment_news.xml文件中设置

添加RecyclerView控件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".news">
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

①、创建接口类OnRecyclerViewClickListener

/**
 * RecyclerView条目点击接口
 * Created by kang on 2018/9/19.
 */

public interface OnRecyclerViewClickListener {
    void onItemClickListener(View view);
    void onItemLongClickListener(View view);
}

②、RecyclerView的Adapter中处理接口

Adapter中创建方法setItemClickListener()
private OnRecyclerViewClickListener listener;
public void setItemClickListener(OnRecyclerViewClickListener itemClickListener) {
     listener = itemClickListener;
}

在Adapter中onCreateViewHolder()方法中将listener注册为Click回调监听

@Override
    public FirstViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.item_first,null);
        FirstViewHolder viewHolder = new FirstViewHolder(view);

        //接口回调
        if(listener != null){
            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    listener.onItemClickListener(v);
                }
            });

            view.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    listener.onItemLongClickListener(v);
                    return true;
                }
            });
        }

        return viewHolder;
    }

想要从新闻列表页跳转至新闻详情页,首先要对点击动作做监听。
public interface OnItemClickListener{
        void onItemClick(int position);
    }
    //点击方法
    public void setOnItemClickListener(OnItemClickListener onItemClickListener){
        this.onItemClickListener = (AdapterView.OnItemClickListener) onItemClickListener;
    }

然后实现跳转,这里使用类名进行跳转,需要在AndroidManifest.xml中注册
<activity android:name=".ContentActivity"/>
1
holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Bundle bundle = new Bundle();
                try {
                    bundle.putCharSequence("url",list.get(position).get("url").toString());
                    Intent intent = new Intent(con, ContentActivity.class);
                    intent.putExtras(bundle);
                    con.startActivity(intent);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
 

索引可以通过RecyclerView.getChildAdapterPosition获取到当前点击的Item的列表索引
int position = recyclerView.getChildAdapterPosition(view);

二 生命周期状态
Activity的生命周期是指Activity从创建到销毁的整个过程,这个过程一般分为五个状态。

1.启动状态
2.运行状态
Activity处于界面的最前端,他是可见,有焦点的,可以与用户交互的。
Activity处于运行状态时,Android会尽可能的保持这个状态,即使内存不足的情况,Android也会优先销毁栈底的Activity。

3.暂停状态
Activity对用户来说仍然可见,但是无法获取焦点,对用户对他的操作没有反应,此时它处于暂停状态。
如游戏充值中的支付小窗口。

4.停止状态
Activity完全不可见,它处于停止状态。

5.销毁状态
Activity将被清理出内存
 

猜你喜欢

转载自blog.csdn.net/lt20001213/article/details/120943418