在startActivity()上传递一个bundle?

时间:2009-04-20 16:13:50

标签: android android-activity bundle

将捆绑包传递给当前正在启动的活动的正确方法是什么?共享属性?

6 个答案:

答案 0 :(得分:394)

您有几个选择:

1)使用Bundle中的Intent

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2)创建一个新的Bundle

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3)使用Intent的putExtra()快捷方式

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


然后,在启动的Activity中,您将通过以下方式阅读它们:

String value = getIntent().getExtras().getString(key)

注意: Bundles对所有基本类型,Parcelables和Serializables都有“get”和“put”方法。我只是将字符串用于演示目的。

答案 1 :(得分:18)

您可以使用意图中的Bundle:

Bundle extras = myIntent.getExtras();
extras.put*(info);

或整个捆绑包:

myIntent.putExtras(myBundle);

这是你要找的吗?

答案 2 :(得分:13)

将数据从一个Activity传递到android中的Activity

意图包含操作和可选的附加数据。可以使用intent putExtra()方法将数据传递给其他活动。数据作为附加内容传递,并且为key/value pairs。密钥始终是String。作为值,您可以使用原始数据类型int,float,chars等。我们还可以将 Parceable and Serializable 对象从一个活动传递给另一个活动。

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

从Android活动中检索捆绑数据

您可以使用Intent对象上的 getData() 方法检索信息。可以通过 getIntent() 方法检索 Intent 对象。

 Intent intent = getIntent();
  if (null != intent) { //Null Checking
    String StrData= intent.getStringExtra(KEY);
    int NoOfData = intent.getIntExtra(KEY, defaultValue);
    boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
    char charData = intent.getCharExtra(KEY, defaultValue); 
  }

答案 3 :(得分:4)

您可以使用Bundle将值从一个活动传递到另一个活动。在当前活动中,创建一个包并为特定值设置包并将该包传递给意图。

Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);

现在,在NewActivity中,您可以获得此捆绑并重新获得您的价值。

Bundle bundle = getArguments();
String value = bundle.getString(key);

您还可以通过意图传递数据。在您当前的活动中,设置这样的意图,

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

现在,在NewActivity中,您可以从这样的意图中获取该值,

String value = getIntent().getExtras().getString(key);

答案 4 :(得分:0)

写这是您正在从事的活动:

master

在NextActivity.java

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

这对我有用,您可以尝试。

来源:https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/

答案 5 :(得分:0)

您可以在第一个活动中使用此代码:

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

并在第二次活动中获取对象:

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }