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();
}
});
}
}</div>
</span></span></span></span></span></span></span></span></span></span>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!