android中页面的返回刷新

jopen 8年前

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();             }         });      }  }

来自: http://www.cnblogs.com/wangshuaiandroid/p/5116485.html

</span></span></span></span></span></span></span></span></span></span>