有人可以解释'putExtra()'方法吗?请简单明确

时间:2016-01-18 16:39:35

标签: android methods

我知道它为'intent'添加了额外的数据,并且“Intent可以将数据类型作为名为extras的键值对进行.putExtra()方法在第一个参数中获取键名称,并在第二个参数,“但这究竟是什么意思? 我正在http://developer.android.com/training/basics/firstapp/starting-activity.html跟踪基本的Android应用创建培训,并且遇到了这个术语。 我现在想了解这一点以供将来参考。 相关代码如下:

    public void sendMessage(View view) 
    {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    }

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

Intent有几个名为putExtra(String name,... ..)的方法,它允许我们在Intent里面保存我们的信息。阅读API Doc我们知道我们可以添加字符串,long,CharSequence,int等。它的行为类似于地图,其中有关键和价值。

以下是putExtra的内部实现:

/**
 * Add extended data to the intent.  The name must include a package
 * prefix, for example the app com.android.contacts would use names
 * like "com.android.contacts.ShowAll".
 *
 * @param name The name of the extra data, with package prefix.
 * @param value The integer data value.
 *
 * @return Returns the same Intent object, for chaining multiple calls
 * into a single statement.
 *
 * @see #putExtras
 * @see #removeExtra
 * @see #getIntExtra(String, int)
 */
public Intent putExtra(String name, int value) {
    if (mExtras == null) {
        mExtras = new Bundle();
    }
    mExtras.putInt(name, value);
    return this;
}

答案 1 :(得分:0)

当您想要将某些信息发送到其他活动或其他组件时,您可以使用putExtra() intent方法,例如,您有两个活动loginActivitymainActivity将用户名发送到mainActivity 登录后,您可以使用此代码:

Intent intent = new Intent(loginActivity.this,mainActivity.class);
intent.putExtra("username",userName);
startActivity(intent);

mainActivity使用以下代码获取用户名或其他信息

    Bundle bundle = getActivity().getIntent().getExtras();
    username= bundle.getInt("username");