我知道这个问题已被问到很多,但我不知道我哪里出错了。
所以我通过一个活动发送了一些数据并从另一个活动中检索它。
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是一个有效的字符串。
答案 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();
此意图将保留您从其他活动传递的数据。