我知道它为'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);
}
感谢您的帮助!
答案 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
方法,例如,您有两个活动loginActivity
和mainActivity
将用户名发送到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");