android中頁面的返回刷新

jopen 10年前發布 | 7K 次閱讀 安卓開發 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>

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

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

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