activity 之间传递参数

Posted yuguangyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activity 之间传递参数相关的知识,希望对你有一定的参考价值。

参考:http://c.biancheng.net/view/2923.html

技术图片

 

 

mainActivity中  通过intent 传递参数

     class MyClickListener implements View.OnClickListener{

        @Override
        public void onClick(View view) {
            //在控制台输出一条语句
            Log.e(TAG,"刚刚点击的按钮时注册了内部类监听器对象的按钮");
            Intent intent = new Intent(MainActivity.this, secondActivity.class);
            //利用 Intent 传递数据。
            intent.putExtra("age",18);
            intent.putExtra("name","kelly");
            intent.putExtra("level",‘A‘);
            //利用 Bundle 传递数据。
            Bundle myBundle = new Bundle();
            myBundle.putString("author","mole");
            intent.putExtras(myBundle);
            startActivity(intent);
        }
    }     
      

在secondActivity中获取intent

   
    package com.example.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class secondActivity extends AppCompatActivity {
    private static final String TAG = "secondActivity";
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
    }
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        
        Intent intent = getIntent();
        String name = intent.getStringExtra("name");
        int age = intent.getIntExtra("age",100);
        char level = intent.getCharExtra("level",‘C‘);

        Log.e(TAG, "onCreate: name:" + name);
        Log.e(TAG, "onCreate: age:" + age);
        Log.e(TAG, "onCreate: level:" + level);
        Log.e(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]");

        Bundle myBundle = intent.getExtras();
        String author = myBundle.getString("author");
        Log.e(TAG, "onCreate: author:" + author);

        Button bt = findViewById(R.id.button_second);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(secondActivity.this,"button is clicked",Toast.LENGTH_SHORT).show();
                Log.e(TAG,"==========匿名内部类======secondActivity====");
                Intent intent = new Intent(secondActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });
    }
}  

技术图片

 

以上是关于activity 之间传递参数的主要内容,如果未能解决你的问题,请参考以下文章

Android -- 每日一问:两个 Activity 之间如何传递参数?

Activity之间传递参数

在另一个活动托管的片段之间传递数据的最佳实践

如何将变量从 Activity 传递到 Fragment,并将其传回?

将接口从片段传递到kotlin中的活动

activity 之间传递参数