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