安卓學習之Activity之間傳遞數據

1.通過intent傳遞數據

通過Intent傳遞方法核心就是通過putEntry來傳遞方法。

傳遞代碼:

intent.putExtra("KEY_HELLO","helloword");

接受代碼:

 Intent intent=getIntent();
 String value=intent.getStringExtra("KEY_HELLO");

不過需要注意的是,在實際過程中,往往是很多個人寫不同的Activity,那麼爲了保證

key統一,就必須隨時溝通,程序就變的不太好維護,我們可以使用下面的辦法。

2.靜態工廠設計模式傳遞數據

我們讓Activity保留自己的key值,並且封裝成一個靜態函數,那麼

我們只需要傳遞的value就行了。

看下面的代碼

 //使用一個靜態方法保證所有的Key值一樣
    public static Intent newIntent(Context context,String value)
    {
        Intent intent=new Intent(context,ActivityDemo.class);
        intent.putExtra("KEY",value);
        return intent;
    }
 Intent intent=ActivityDemo.newIntent(getApplicationContext(),"hello");

返回數據給之前的Activity

這時候我們就需要用到兩個方法:

startActivityForResult(intent,0);//第二個參數是請求碼

protected void onActivityResult(int requestcode,int resultcode,   Intent data)

需要注意的是第二個函數是隻有第二個頁面退出時纔會調用。

代碼如下:

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.putExtra("result","hello   ");
                setResult(0,intent);
                finish();//關閉當前Activity
            }
        });
 protected void onActivityResult(int requestcode,int resultcode,Intent data)
  {
     super.onActivityResult(requestcode,resultcode,data);
      if(requestcode==0&&data!=null)
      {
          String result=data.getStringExtra("result");
          Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG);
      }
  }


                               
                               

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章