Android第八天

Intent

一、intent可以理解爲信使(意圖)
由intent來協助完成Android各個組件之間的通訊
二、Intent實現頁面之間的跳轉
 1.startActivity(intent)—直接啓動一個頁面
 2.startActivityForRsult(intent,requestCode)—有返回值啓動一個頁面
  onActivityResult(int requestCode,int resultCode,Intent data);該方法用於A頁面接收B頁面回傳的數據
  setResult(resultCode,data);該方法用於B頁面向A頁面傳輸數據

第一個頁面(Activity)

public class FirstActivity extends Activity {
    private TextView tv;
    private Button bt1,bt2;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstactivity);
        bt1 = (Button) findViewById(R.id.Button1);
        bt2 = (Button) findViewById(R.id.Bautton2);
        tv = (TextView)findViewById(R.id.TextView1);
        bt1.setOnClickListener(new View.OnClickListener() {
            //通過第一種方式startActivity實現頁面跳轉
            @Override
            public void onClick(View view) {
                /*
                * 第一個參數:上下文對象this
                * 第二個參數:目標文件
                */
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });

        bt2.setOnClickListener(new View.OnClickListener() {
            //通過第二種方式startActivityForRsult實現頁面跳轉
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                /*
                * 第一個參數是Intent對象
                * 第二個參數是請求的一個標識
                * */
                startActivityForResult(intent,1);
            }
        });

    }
    /*
    * 通過startActivityForRsult跳轉,接收返回數據的方法
    * requestCode:請求的標識
    * resultCode:第二個頁面返回的標誌
    * data:第二個頁面回傳的數據
    * */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 1 && resultCode == 2){
            String content = data.getStringExtra("data");
            tv.setText(content);
        }
    }
}

第二個頁面(Activity)

public class SecondActivity extends Activity {
    private String content = "你好";
    private Button bt;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondactivity);
        bt = (Button)findViewById(R.id.Button);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent data = new Intent();
                data.putExtra("data",content);
                setResult(2,data);
                //結束當前頁面
                finish();
            }
        });
    }
}

三、運行效果
  在第一個頁面點擊使用第一種跳轉方式的Button時,跳轉到第二個頁面,使用第二個頁面的返回Button可以回到原頁面
這裏寫圖片描述
  在第一個頁面點擊使用第二種跳轉方式的Button時,跳轉到第二個頁面,使用第二個頁面的返回Button可以把第二個頁面的數據返回到第一個頁面
這裏寫圖片描述

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