android中页面的返回刷新

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;
@Override
protected 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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值