activity的生命周期与跳转作业二

 

根据课程内容实现对Activity生命周期的理解,使用log展示生命周期的状态变化;

在前次作业的基础上增加列表项的单项点击功能,具体要求是:新建一个新的activity1,recycleview的某一项点击后跳转到这个新的activity1

实现最新的activityforresult功能,具体要求如下:新建一个新的activity2,在activity1上添加按钮可收到activity2的回传值。

纵向布局

 

实现代码: 



recyclerview.setLayoutManager(new LinearLayoutManager(this));
 或
LinearLayoutManager manager = new LinearLayoutManager(this);
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerview.setLayoutManager(manager);

点击功能

RecyclerView的点击事件有两种写法:
① 在Adapter里面直接对控件做点击事件
② 写接口,在ActivityFragment上实现接口中定义的方法

在 Adapter 里面直接对控件做点击事件

@Override
public void onBindViewHolder(@NonNull XxxViewHolder holder, int position) {
    holder.控件名.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO:
        }
    });
}

在 Adapter 里写接口

public interface OnItemClickListener {
    void onItemClick(参数类型 参数名 , ...);
}

private OnItemClickListener mListener;

public XxxAdapter(Context context, OnItemClickListener listener) {
    mContext = context;
    mListener = listener;
}

@Override
public void onBindViewHolder(@NonNull XxxViewHolder holder, int position) {
    holder.控件名.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mListener.onItemClick(content);
        }
    });
}

在 Activity 或 Fragment 上实现接口中定义的方法

public class XxxActivity extends AppCompatActivity implements XxxAdapter.OnItemClickListener

XxxAdapter adapter = new XxxAdapter(context, this);

@Override
public void onItemClick(String content) {
    // TODO:
}

实际操作

 

 

 分组:

recyclerView分组的写法有很多种,我会在分组顶部悬浮联动中给出不同的写法。

第一种分组写法也是最简单的一种,将组名和内容写在同一个布局,在onBindViewHolder里根据位置来进行组名的显示与隐藏:

 

if (position == 0) {
    holder.组名.setVisibility(View.VISIBLE);
} else {
    if (list.get(position).get组().equals(list.get(position - 1).get组())) {
        holder.组名.setVisibility(View.GONE);
    } else {
        holder.组名.setVisibility(View.VISIBLE);
    }
}

 

 实现点击跳转

 

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    android:background="@color/light_blue"
    android:orientation="vertical">

    <TextView
        android:id="@+id/friend_name"
        android:layout_width="match_parent"
        android:layout_height="15dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:background="@color/ivory"
        android:fontFamily="@font/huawencaiyun"
        android:gravity="center"
        android:text="嘉然"
        android:textColor="@color/blue"
        android:textSize="30sp" />

    <TextView
        android:id="@+id/friend_info"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_weight="1"
        android:layout_margin="10dp"
        android:text=" 嘉然(Diana),乐华娱乐旗下虚拟偶像女团A-SOUL成员,组合吃货担当。所属组合A-SOUL是乐华娱乐年度最新企划中打造的虚拟偶像女团,共由五名成员(向晚Ava、贝拉Bella、珈乐Carol、嘉然Diana、乃琳Eileen)组成,于2020年11月23日首次公开; [1]  2020年12月2日发布第一首团体单曲《Quiet》 [3]  ;2021年4月30日发布第二首团体单曲《超级敏感》; [4]  12月17日,发布A-SOUL出道一周年系列主题曲《传说的世界》 [10]  ;2022年1月,获得哔哩哔哩“2021年度百大UP主”称号。 [6-7]  2022年2月3日,发布虎年贺岁单曲《除夕》 "
        android:fontFamily="@font/huawenxingkai"
        android:textSize="22sp" />

    <ImageView
        android:id="@+id/friend_pic"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/jiaran" />

    <Button
        android:id="@+id/btn_back"
        android:layout_width="100dp"
        android:layout_height="5dp"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:alpha="0.5"
        android:text="返回"
        android:textColor="#000000"
        android:textSize="18sp" />
</LinearLayout>

 实验小结:通过这次实验加深了对Activity生命周期的理解,通过自己一步一步的摸索实现了点击跳转的功能,知道了应该新建一个新的activity1,然后recycleview的一项点击后跳转到这个新的activity1,尽管可能这次的实验内容并不是很难,但还是让我消耗了不少体力,去解决在实验过程中遇到的各种问题,有的是因为粗心大意,有的则是没有搞明白一些技术要点,反正脚踏实地耐心的去做,去敲代码最后还是完成了实验,希望能够真正学到知识掌握在自己手中。

仓库地址:何豪豪/王圣辉

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值