博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android中页面的返回刷新
阅读量:7211 次
发布时间:2019-06-29

本文共 2250 字,大约阅读时间需要 7 分钟。

android中从A activity 打开B activity 操作之后返回A activity,并且A activity状态改变就要用到刷新

我就介绍一下我开发中最常用的方法

引用函数 setResult和 onActivityResult处理机制

实现原理,在第二个Activity的返回事件中返回数据,第一个Activity中重构onActivityResult方法,在重构该方法的事件中,感觉返回的数据,做出不同的处理。以达到自动更新第一个Activity的效应。详细情况参考如下的介绍。当前两个activity,MainAcivity和SecondActivity;

1 //A MainAcivity的重要代码: 2    public void onClick(View v) { 3     Intent intent = new Intent(); 4     intent.setClass(MainActivity.this, SecondActivity.class); 5     Bundle bundle = new Bundle(); 6     Log.v("android.abc", "!!!!!"+MainActivity.this.toString()); 7     bundle.putString("uid", MainActivity.this.toString()); 8     intent.putExtras(bundle); 9     startActivityForResult(intent,GET_CODE);10    }11  12 //B.SecondActivity中,在OnClickListener中13      findViewById(R.id.button).setOnClickListener(new View.OnClickListener() 14     {   15           @Override   16       public void onClick(View v) 17        {   18          setResult(RESULT_OK,(new Intent()).setAction(uid));   19          finish();   20        }   21    });  22  23   //B.在MainActivity中,重写onActivityResult方法;24    @Override   25    protected void onActivityResult(int requestCode, int resultCode, Intent data) 26    {   27     if(requestCode == GET_CODE)28     {   29      if(resultCode == RESULT_CANCELED)30       {   31         text2.setText("点击了返回");   32       } 33       else 34       {   35         if (data != null) 36          {   37            text2.setText("得到第二个activity返回的结果:\n"+data.getAction());   38           }   39       }   40     }   41   }

其中static final private int GET_CODE = 0;是我自定义的常量,用来区分当前返回的是哪个activity的结果;下面是类SecondActivity的代码:

public class SecondActivity extends Activity{String uid;@Overrideprotected void onCreate(Bundle savedInstanceState){      super.onCreate(savedInstanceState);      setContentView(R.layout.second);      Bundle bundle = this.getIntent().getExtras();      if (bundle != null){        uid = bundle.getString("uid");       }       findViewById(R.id.button).setOnClickListener(new View.OnClickListener(){           @Override           public void onClick(View v){             setResult(RESULT_OK,(new Intent()).setAction(uid));             finish();           }       });    }}

 

转载于:https://www.cnblogs.com/wangshuaiandroid/p/5116485.html

你可能感兴趣的文章
Ubuntu 16.04安装UML工具StarUML 2
查看>>
勒索病毒入侵中国, Splunk建议网络立即进行区分和隔离设置
查看>>
应“云”而生--云时代的运维新理念
查看>>
RFID能否让实体零售业度过“寒冬”?
查看>>
Swagger2接口注释参数使用数组
查看>>
“IP的力量”专题论坛成功举办,聚焦行业共话IP与VR AR技术新融合
查看>>
Ubuntu下使用UFW配置防火墙(简化iptables的操作)
查看>>
OpenStack快速入门-queens版本
查看>>
大数据驱动智能制造 物联网引爆工业革命商机
查看>>
一个比较完善的购物车类
查看>>
「镁客·请讲」Visense Studio冯樑杰:游戏基因的VR视频,最好的表现是真人实拍交互...
查看>>
让人欲罢不能的量子学
查看>>
美团在Redis上踩过的一些坑-2.bgrewriteaof问题
查看>>
C# StreamReader.ReadLine统计行数的问题
查看>>
异常测试实践与梳理
查看>>
多者异也
查看>>
tf:'hello tensorflow'
查看>>
RedisConf2018记录--Day 1 sessions
查看>>
CentOS的el5, el6, el7代表什么
查看>>
柏林纪行(中):Node.js Collaboration Summit
查看>>