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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM