Intent getStringExtra返回null

时间:2017-12-30 18:18:01

标签: android android-intent

我知道这个问题已被问到很多,但我不知道我哪里出错了。

所以我通过一个活动发送了一些数据并从另一个活动中检索它。

FirstActivity

Timber.i("Photo img : %s", posterUrl);
    String url = AppConstants.IMAGE_BASE_URL+ 
    AppConstants.POSTER_SIZE_ORIGINAL+ posterUrl;
    Intent i = new Intent(this, ImageFullActivity.class);
    i.putExtra(AppConstants.IMAGE_URL, url);
    startActivity(i);

接收活动

Intent i = new Intent();
String imageUrl = i.getStringExtra(AppConstants.IMAGE_URL);    
Timber.i("GOt image url %s", imageUrl);
Picasso.with(this)
      .load(imageUrl)
      .into(image);

我查了一下。我没有通过额外的东西传递null。 posterUrl是一个有效的字符串。

4 个答案:

答案 0 :(得分:4)

您需要使用getIntent()将启动下一个活动的intent实例作为

 getIntent().getStringExtra

而不是创建一个新的空

//Intent i = new Intent(); remove

Intent i = getIntent(); // or do this

答案 1 :(得分:1)

试试这个

//Intent i = new Intent();
String imageUrl = getIntent().getStringExtra(AppConstants.IMAGE_URL);    
Timber.i("GOt image url %s", imageUrl);
Picasso.with(this)
      .load(imageUrl)
      .into(image);

Bundle bundle = getIntent().getExtras();
String imageUrl = bundle.getString(AppConstants.IMAGE_URL);
Timber.i("GOt image url %s", imageUrl);
Picasso.with(this)
      .load(imageUrl)
      .into(image);

答案 2 :(得分:0)

String imageUrl = getIntent().getStringExtra(AppConstants.IMAGE_URL);

你需要通过getIntent()方法获得意图

答案 3 :(得分:0)

问题是您在接收活动中尝试create new intent,而您的数据中没有您在其他activity中传递的内容。 要获得您在其他活动中传递的内容,请使用getIntent()

Intent i = getIntent();

此意图将保留您从其他活动传递的数据。