Android Studio——Activity的生命周期与跳转

  • 实现对Activity生命周期的理解,使用log展示生命周期的状态变化;
  • 实现recycleView页面点击跳转。

一、使用log展示生命周期的状态变化

Activity 生命周期指 Activity 从创建到销毁的过程。
Activity 表现为四种状态:
活动状态Active Activity 在用户界面中 处于最上层 ,完全能被用户看到,能够与用户进行交互。
暂停状态Pause Activity 在界面上 被部分遮挡 ,不再处于用户界面的最上层,且不能够与用户进行交互。 ( 如弹出消息框 )
停止状态Stop Activity 被其他 Activity 全部遮挡 ,界面完全不能被用户看到。
非活动状态Dead Activity 没有启动或者被 finish()
部分代码如下:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        Log.d("rain","这是Activity4生命周期:onCreate。");
        Intent intent4=getIntent();
        textView=findViewById(R.id.textView2);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d("rain","这是Activity4生命周期:onStart。");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d("rain","这是Activity4生命周期:onResume。");
    }

结果如下:

 

 

二、实现recycleView页面点击跳转

1、设计recycleView页面

把recycle控件放到消息界面的布局文件中(fragment1对应的tab01.xml)

 新建一个item.xml文件规划列表中元素布局

 Adapter连接后端数据和前端显示,是数据data和UI之间一个重要的纽带。编写适配器recycleAdapter,配置界面上的内容显示。

recycleAdapter代码如下:

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.io.File;
import java.util.List;

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.Myviewholder> {
    private List<String> mlist;
    private Context context;
    public RecyclerViewAdapter(Context context, List<String> list) {
        this.mlist=list;
        this.context=context;
    }

    @NonNull
    @Override
    public Myviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view=(View) LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);
        Myviewholder myviewholder=new Myviewholder((view));
        return myviewholder;
    }

    @Override
    public void onBindViewHolder(@NonNull Myviewholder holder, int position) {
        holder.textView1.setText("联系人"+(position+1));
        holder.textView2.setText(mlist.get(position));
        holder.textView2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(context,ItemActivity.class);
                context.startActivity(intent);
            }
        });
    }

    @Override
    public int getItemCount() {
        return mlist.size();
    }
    public class Myviewholder extends RecyclerView.ViewHolder{
        TextView textView1,textView2;
        public Myviewholder(@NonNull View itemView) {
            super(itemView);
            textView1=itemView.findViewById(R.id.textView1);
            textView2=itemView.findViewById(R.id.textView2);
        }
    }
}

将内容显示在类微信界面的微信页面上,在微信页面对应的java文件(fragment1.java)中写入并配置我们想要显示的内容。

fragmen1.java部分代码如下:

public class Fragment1 extends Fragment {
    private RecyclerView recyclerView1;
    private  Context context;
    private List<String> mList=new ArrayList<>();
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view;
        view=inflater.inflate(R.layout.tab01, container, false);
        context=view.getContext();
        InitData();
        recyclerView1=view.findViewById(R.id.recyclerView1);
        RecyclerViewAdapter adapter=new RecyclerViewAdapter(context,mList);
        recyclerView1.setAdapter(adapter);
        LinearLayoutManager manager=new LinearLayoutManager(context);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView1.setLayoutManager(manager);
        recyclerView1.addItemDecoration(new DividerItemDecoration(context,LinearLayoutManager.VERTICAL));
        return view;
    }
    private void InitData(){
        mList.add("丁鑫鑫(什么意思哦???)");
        mList.add("马吉克(大胆称呼我马某人)");
        mList.add("张无敌(我哩,我哩脑壳)");
        mList.add("宋人头(我si大壁虎)");
        mList.add("贺西北风(我警告你端庄一点)");
        mList.add("严好香(微信转账三百块)");
        mList.add("刘丸子(你想遭捶迈)");
        mList.add("小草房(我是一个傻瓜)");
        mList.add("花园宝宝(玛卡巴卡)");
        mList.add("小猪佩奇(粉色吹风机)");
    }
}

2、实现页面点击跳转(对recycleView中的内容进行点击,跳转到详情页面)

新建一个ItemActivity文件存放跳转后详情页面中的内容,在activity布局文件中对页面进行布局

当点击recycleView中的内容时,通过intent进行传递和接收对应的数据和参数

新建一个resultActivity文件,在ItemActivity上添加按钮,点击后收到resultActivity的回传值(奥特曼在听!并肩前行!!!)

resultActivity代码如下:

public class resultActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        Intent intent=getIntent();
        intent.putExtra("data","奥特曼在听!并肩前行!!!\n");
        setResult(666,intent);
        finish();
    }
}

三、最终结果显示

 四、全部代码地址:AS: 上代码!(Android Studio) (gitee.com)

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值