有人能告诉我到底如何使用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()的帮助下。我得到输入的值作为一个字符串,然后我必须传递这个数据。


当前回答

在Intent类中更新。

使用hasExtra()检查意图是否在key上有数据。 现在可以直接使用getStringExtra()。

传递数据

intent.putExtra(PutExtraConstants.USER_NAME, "user");

获取数据

String userName;
if (getIntent().hasExtra(PutExtraConstants.USER_NAME)) {
    userName = getIntent().getStringExtra(PutExtraConstants.USER_NAME);
}

作为最佳实践,始终将键放在常量中。

public interface PutExtraConstants {
    String USER_NAME = "USER_NAME";
}

其他回答

对于这个任务,一个内联代码就足够了。这对我来说毫不费力。 面向android开发者。 .getExtras字符串strValue = Objects.requireNonNull (getIntent () ()) .getString(“string_Key”);

Intent intent = new Intent(view.getContext(), ApplicationActivity.class);
                        intent.putExtra("int", intValue);
                        intent.putExtra("Serializable", object);
                        intent.putExtra("String", stringValue);
                        intent.putExtra("parcelable", parObject);
                        startActivity(intent);

ApplicationActivity

Intent intent = getIntent();
Bundle bundle = intent.getExtras();

if(bundle != null){
   int mealId = bundle.getInt("int");
   Object object = bundle.getSerializable("Serializable");
   String string = bundle.getString("String");
   T string = <T>bundle.getString("parcelable");
}

先放绳子

Intent secondIntent = new Intent(this, typeof(SecondActivity));
            secondIntent.PutExtra("message", "Greetings from MainActivity");

在此之后检索它

var message = this.Intent.GetStringExtra("message");

这就是全部;)

一个小补充:你不需要为键创建自己的名字,android提供了这些,f.ex。Intent.EXTRA_TEXT。修改接受的答案:

Intent i = new Intent(FirstScreen.)这一点,SecondScreen.class); 字符串strName = null; i.putExtra(意图。EXTRA_TEXT strName); 然后,要检索值,请尝试如下操作: 字符串部份; Bundle extras = getIntent().getExtras(); If (extras == null) { 部份=零; }其他{ 部份= extras.getString (Intent.EXTRA_TEXT); }

send

startActivity(new Intent(First.this, Secend.class).putExtra("key",edit.getText.tostring));

get

String myData = getIntent.getStringExtra("key");