我是靠谱客的博主 爱笑故事,最近开发中收集的这篇文章主要介绍Activity之间跳转实现--安卓作业2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.要求分析 

目前已经利用adapter实现了将数据传输recycleview界面。这次作业主要是利用intent传递参数并实现activity之间的跳转

1.在Adapter中的内部类viewholder中设置一个监听,用于recyclerview中每一个item

myviewholder.textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(context,ItemActivity.class);
                context.startActivity(intent);
            }
        });

2.设置好监听之后,需要新建一个activity用来加载详情界面

 3.将recyclerview中item的内容加载到详情页面对应的activity中

Itemactivity中的代码

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item);
        textView=findViewById(R.id.itemtextView2);
        button=findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(ItemActivity.this,resultActivity.class);
                test.launch(intent);
            }
        });
    }

调用onActivityResultLauncher获取跳转之后界面传递回来的状态,数据等信息

public ActivityResultLauncher test = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>(){

                @Override
                public void onActivityResult(ActivityResult result) {
                    if (result.getResultCode() == 888){
                        Log.d("xr","onActivityResultLauncher...");
                        textView.setText(result.getData().getStringExtra("data"));
                    }
                }
            });

4.resultActivity

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        Intent intent=getIntent();
        intent.putExtra("data","今天是安卓课,老师是肖蓉"+"上课时间是"+ Calendar.getInstance().getTime());
        setResult(888,intent);
        finish();
    }

二、核心技术
1)intent和bundle:

intent用于从一个activity跳转到另一个activity。在调和被调的activity中的intent书写形式不一样。
bundle可以看作一个键值对列表。这个列表非常人性化的地方在于,它的value值可以是整型,char,String各种类型都可。并且每一个value值你可以给它一个名字,方便访问。它和intent配合使用的时候就可以让intent不只是只能带一个值而是可以带多个并且是不同种类的值。简直不要太好!
学了intent之后我也想了以下为什么之前传值的时候要自己写一个私有类MyAdapter而不是直接用intent。intent和adapter都是传值,这两者之间到底有什么区别??后来我仔细想了想,adpter传值可以看作静态的,即将一系列静态的数据传到我们写的界面中,我们不需要两个activity之间调用就可以将数据传入;而intent是在我们操作activity的过程中传值的工具,它传值的条件建立在一个activity调用另一个activity的过程中。所以这两者区别还是挺大的。
2)onActivityResult:

在进行界面间的跳转和传递数据的时候,我们有的时候要获得跳转之后界面传递回来的状态,数据等信息。这个时候,我们不一定需要使用Intent进行跳转回原来设置的界面,而是使onActivityResult方法就可以解决这个问题。

三.结果展示

四.实验小结

本次实验主要完成了intent传值和activity之间的跳转,通过本次实验我了解了如何使用onActivityResult来进行界面间的跳转和传递数据,了解了跳转和跳转到的activity中调

用的intent的写法不同
 

最后

以上就是爱笑故事为你收集整理的Activity之间跳转实现--安卓作业2的全部内容,希望文章能够帮你解决Activity之间跳转实现--安卓作业2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部