概述
一.要求分析
目前已经利用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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复