Intent和Bundle的简单示例

Aks*_*thi 27 android bundle android-intent

我是android的新手,几乎不了解Java和XML.我正在通过pdf学习它,我正在上网.我已经了解了Toast,有点关于Intents,但我无法理解Bundles的任何内容.我已经知道它们用于将数据从一个活动传递到另一个活动,但我无法实现这一点.

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

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

请给出最简单的例子,以便我学会实施.

提前致谢!!

Dan*_*Pop 49

例如 :

在MainActivity中:

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra(OtherActivity.KEY_EXTRA, yourDataObject);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在OtherActivity中:

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
}
Run Code Online (Sandbox Code Playgroud)

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


And*_*der 22

试试这个:如果您需要在活动之间传递值,请使用此...

这是Main_Activity的代码,将值设置为intent

 String name="aaaa";
 Intent intent=new Intent(Main_Activity.this,Other_Activity.class);
 intent.putExtra("name", name);
 startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

此代码用于Other_Activity并获取表单意图的值

    Bundle b = new Bundle();
    b = getIntent().getExtras();
    String name = b.getString("name");
Run Code Online (Sandbox Code Playgroud)

  • 注意,上面的代码行中有2行可以变为1:`Bundle b = getIntent().getExtras();` (2认同)

Nic*_*aus 6

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

Intent intent = new Intent();
intent.setAction(this, SecondActivity.class);
intent.putExtra(tag, value);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在第二次活动中:

Intent intent = getIntent();
intent.getBooleanExtra(tag, defaultValue);
intent.getStringExtra(tag, defaultValue);
intent.getIntegerExtra(tag, defaultValue);
Run Code Online (Sandbox Code Playgroud)

其中一个get函数会返回值,具体取决于您传递的数据类型.