29

我是 android 新手,对 Java 和 XML 几乎一无所知。我正在通过我在网上获得的 pdf 来学习它。我了解了 Toast,了解了一些 Intents,但我对 Bundles 一无所知。我知道它们用于将数据从一个活动传递到另一个活动,但我无法实现这一点。

请举一个简单的例子来实现相同的。

例如,我刚刚创建了两个活动,即 Main_Activity 和 Other_Activity,我还没有对它们做任何事情。

请举一个最简单的例子,以便我可以学习实现。

提前致谢!!

4

3 回答 3

53

例如 :

在 MainActivity :

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra(OtherActivity.KEY_EXTRA, yourDataObject);
startActivity(intent);

在其他活动中:

public static final String KEY_EXTRA = "com.example.yourapp.KEY_BOOK";

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  String yourDataObject = null;

  if (getIntent().hasExtra(KEY_EXTRA)) {
      yourDataObject = getIntent().getStringExtra(KEY_EXTRA);
  } else {
      throw new IllegalArgumentException("Activity cannot find  extras " + KEY_EXTRA);
  }
  // do stuff
}

更多信息在这里:http: //developer.android.com/reference/android/content/Intent.html

于 2013-02-14T13:57:03.927 回答
24

试试这个:如果你需要在你使用这个的活动之间传递值......

这是 Main_Activity 的代码,将值放入意图

 String name="aaaa";
 Intent intent=new Intent(Main_Activity.this,Other_Activity.class);
 intent.putExtra("name", name);
 startActivity(intent);

此代码用于 Other_Activity 并从意图中获取值

    Bundle b = new Bundle();
    b = getIntent().getExtras();
    String name = b.getString("name");
于 2013-02-14T13:58:52.300 回答
8

基本上这是你需要做的:
在第一个活动中:

Intent intent = new Intent();
intent.setAction(this, SecondActivity.class);
intent.putExtra(tag, value);
startActivity(intent);

在第二个活动中:

Intent intent = getIntent();
intent.getBooleanExtra(tag, defaultValue);
intent.getStringExtra(tag, defaultValue);
intent.getIntegerExtra(tag, defaultValue);

根据您传递的数据类型,其中一个 get 函数将为您返回值。

于 2013-02-14T13:59:51.473 回答