有人可以告诉我如何使用 getExtra()
和 putExtra()
进行意图?实际上我有一个字符串变量,比如str,它存储一些字符串数据 . 现在,我想将这些数据从一个活动发送到另一个活动 .
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String keyIdentifer = null;
i.putExtra(strName, keyIdentifer );
然后在SecondScreen.java中
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.table);
TextView userName = (TextView)findViewById(R.id.userName);
Bundle bundle = getIntent().getExtras();
if(bundle.getString("strName")!= null)
{
//TODO here get the string stored in the string variable and do
// setText() on userName
}
}
我知道这是一个非常基本的问题但不幸的是我被困在这里 . 请帮忙 .
谢谢,
编辑:这里我试图从一个屏幕传递到另一个屏幕的字符串是动态的 . 那就是我有一个editText,我得到的字符串无论用户类型如何 . 然后在 myEditText.getText().toString()
的帮助下 . 我将输入的值作为字符串,然后我必须传递此数据 .
14 回答
把功能
将字符串放入Intent对象中
onCreate方法中的NextAcitvity获取String
这是简单而简短的方法
Android在Intent类中引入了新方法 .
使用
hasExtra()
检查intent是否包含密钥数据 .您可以直接使用
getStringExtra()
.Pass Data
Get Data
I always put keys in constants for best practice (to avoid manual errors)
Push Data
上面的代码可能在主
activity
内 . “MyActivity.class
”是我们要发布的第二个Activity
;它必须明确包含在AndroidManifest.xml
文件中 .Pull Data
在此示例中,上面的代码将位于
MyActivity.java
文件中 .陷阱
此方法只能传递
strings
. 所以,假设您需要将ArrayList
传递给ListActivity
;一种可能的解决方法是传递逗号分隔字符串,然后在另一端分割它 .替代方案
使用
SharedPreferences
最佳方法......
SendingActivity
RecievingActivity
///接收数据的最短路径..
//这需要api 12. //第二个参数是可选的 . 如果keyName为null,则使用
defaultkey
作为数据 .更简单
发件人方
接收方
一个小附录:你不必为密钥创建自己的名字,android提供这些,f.ex . Intent.EXTRA_TEXT . 修改已接受的答案:
简单,在第一个活动中 -
在第二个活动中 -
用它来“放”文件......
然后,要检索值,请尝试以下方法:
把字符串放在首位
之后检索它
就这样 ;)
这就是我一直在使用的,它可以帮助某人......简单而有效 .
发送数据
获取数据
干杯!
first Screen.java
Second Screen.java
在Android中实现
intent
非常容易 . 它会将您从一个活动转移到另一个活动,我们需要两个方法putExtra();
和getExtra();
现在我向您展示示例..现在我们必须从
AnyKeyName
参数中获取值,下面提到的代码将有助于这样做无论我们需要什么,我们都可以轻松地设置
Intent
的接收值 .ApplicationActivity