1. 程式人生 > 其它 >Activity之間的跳轉和資料傳遞

Activity之間的跳轉和資料傳遞

技術標籤:Androidandroid

目錄

1、按鈕點選跳轉頁面

        mBtn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //顯式跳轉1——首選
                Intent intent1 = new Intent(MainActivity.this, loadActivity.class);
                startActivity(
intent1); //顯式跳轉2 Intent intent2 = new Intent(); intent2.setClass(MainActivity.this, loadActivity.class); startActivity(intent2); //顯式跳轉3 Intent intent3 = new Intent(); intent3.setClassName(
MainActivity.this, "com.gxw.myappf.loadActivity"); startActivity(intent3); //顯式跳轉4 Intent intent4 = new Intent(); intent4.setComponent(new ComponentName(MainActivity.this, "com.gxw.myappf.loadActivity")); startActivity(
intent4); //隱式跳轉(需做下框中設定) Intent intent5 = new Intent(); intent5.setAction("android.gxw.jumpyin"); startActivity(intent5); } });
# activity_main.xml
        <activity android:name=".loadActivity"
            android:theme="@style/Theme.NoTitleBar.CustomBackground"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.gxw.jumpyin" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

2、資料傳遞

點選按鈕跳轉並傳遞引數

mBtn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //跳轉並傳遞引數
                Intent intent = new Intent(MainActivity.this, loadActivity.class);
                Bundle bundle = new Bundle(); //可傳多個引數
                bundle.putString("name","123");
                bundle.putInt("id",'5');
                intent.putExtra("data", bundle);
                startActivity(intent);
            }
        });

接收引數並返回引數

    private TextView mTv1;
    private Button mbtn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);

        mTv1 = findViewById(R.id.tv_4); //找到控制元件
        mbtn1 = findViewById(R.id.bt_1); //找到控制元件
        Bundle bundle = getIntent().getExtras(); //獲取傳遞的引數
        String name = bundle.getString("name");
        int id = bundle.getInt("id");

        mTv1.setText(name + ',' + id);

        //返回引數
        mbtn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent1 = new Intent();
                Bundle bundle1 = new Bundle();
                bundle1.putString("data","back");
                intent1.putExtras(bundle1);
                setResult(TextViewActivity.RESULT_OK,intent1);設定返回結果
                finish();//結束本頁面
            }
        });
    }

在原頁面中新增函式用於接收返回的資料

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Toast.makeText(MainActivity.this, data.getExtras().getString("data"),Toast.LENGTH_LONG).show();
    }