#android
#Android
Вопрос:
Я хочу отобразить изображение из Интернета из основного действия в другое действие. Но это не работает. Что я сделал:
// Основное действие
gameListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
// Find the current game that was clicked on
Games currentGame = mAdapter.getItem(position);
// Convert the String URL into a URI object (to pass into the Intent constructor)
Uri gameUri = Uri.parse(currentGame.getUrl());
// Create a new intent to view the game URI
Intent i = new Intent(GamesActivity.this,PreviewActivity.class);
i.putExtra("value",gameUri);
startActivity(i);
}
});
// Второе действие
public class PreviewActivity extends AppCompatActivity {
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
img = findViewById(R.id.imagePreview);
Uri i = getIntent().getData();
Picasso.with(this).load(i).into(img);
}
}
Комментарии:
1. Я предполагаю, что ваш вопрос «почему это не работает»? Вы сохраняете URL в качестве дополнительных данных, а затем пытаетесь прочитать его обратно из основного значения. Попробуйте сохранить его с помощью
setData
или прочитать его обратно с помощьюgetExtra
. Вы также должны справиться с GetIntent, возвращающим null во втором действии, например, если оно было запущено каким-либо другим способом.2. Большое вам спасибо, вы решили мою проблему.
Ответ №1:
Intent intent=getIntent();
String i=intent.getStringExtra("value");
Picasso.with(this).load(i).into(img);
И URL в виде строки.
Комментарии:
1. Я сделал это перед загрузкой вопроса
2. сначала проверьте URL, если все в порядке, затем попробуйте это, это может произойти из-за конфликта версий Picasso.get ().load (i) .fit().placeholder (ПОМЕСТИТЕ НЕКОТОРЫЙ ЗАПОЛНИТЕЛЬ «) .into (img);
3. большое спасибо, я использовал setData () вместо putExtra (), и проблема была решена.