Intent 和 Bundle 的简单示例 [重复]

Posted

技术标签:

【中文标题】Intent 和 Bundle 的简单示例 [重复]【英文标题】:Simple example for Intent and Bundle [duplicate] 【发布时间】:2013-01-30 08:10:00 【问题描述】:

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

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

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

请给出最简单的例子,以便我学习实现。

提前致谢!!

【问题讨论】:

你需要如何在两个活动之间传递值 Activity xml 标签是应用程序的子级。这把我扔了。 【参考方案1】:

例如:

在 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

【讨论】:

【参考方案2】:

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

这是 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");

【讨论】:

注意上面的2行代码可以做成1行:Bundle b= getIntent().getExtras(); 当你从一个包中检索时,获取它【参考方案3】:

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

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 函数将返回值,具体取决于您传递的数据类型。

【讨论】:

以上是关于Intent 和 Bundle 的简单示例 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

简要分析Android中的Intent,Bundle,Parcel中的数据传递

简要分析Android中的Intent,Bundle,Parcel中的数据传递

android学习:intent和Bundle传值上的区别

通过启动Activity来理解Intent+Bundle跨进程

IPC机制——使用Bundle文件共享Messenger

intent.getExtras()和intent.getStringExtra()