У меня есть активность, в которой находится фрагмент.С этого фрагмента я запускаю другую активность (если нажата определенная кнопка).Это задание представляет собой представление Recycler, в котором выбирается изображение, и я хочу получить этот идентификатор изображения и передать его моему фрагменту (чтобы он мог отображать правильное изображение).Я пытался сделать тест для передачи данных, но он не работает.ImageGallery.java <- Активность, где изображения: </p>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_gallery);
RecyclerView recyclerView = (RecyclerView)findViewById(R.id.imagegallery);
recyclerView.setHasFixedSize(true);
images = new ArrayList<>();
RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getApplicationContext(),2);
recyclerView.setLayoutManager(layoutManager);
for (int i = 0; i < IMAGE_IDS.length; i++) {
images.add(new ImageListHandler(IMAGE_IDS[i]));
}
GalleryAdapter adapter = new GalleryAdapter(getApplicationContext(), images);
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(onItemClickListener);
Bundle bundle = new Bundle();
bundle.putString("test", "hello");
GameFragment9 fragobj = new GameFragment9();
fragobj.setArguments(bundle);
}
GameFragment9.java <- Фрагмент, где я ожидаю получить идентификатор изображения (в данном случае, очевидно, просто приветственное сообщение) </p>
@Override
public void onResume() {
super.onResume();
Bundle bundle = this.getArguments();
if (bundle != null){
myValue = bundle.getString("test");
}
Toast.makeText(getActivity(), myValue, Toast.LENGTH_SHORT).show();
}
GameActivity9.java <- содержит фрагмент, который запускает действие. </p>
открытый класс. GameActivity9 расширяет AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game9);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
GameFragment9 fm1 = new GameFragment9();
PictureHolder9Fragment fm2 = new PictureHolder9Fragment();
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
fragmentManager.beginTransaction().replace(R.id.fragment9One, fm1).commit();
}
else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
fragmentManager.beginTransaction().replace(R.id.fragment9Oneh, fm1).commit();
fragmentManager.beginTransaction().replace(R.id.fragment9Twoh, fm2).commit();
}
}
}
. Я добавил оператор if, поскольку в противном случае я получил исключение NullPointerException.Фактический код очень большой, поэтому я привожу здесь только часть, участвующую в коммуникации.PD: Actual GameFragment9 code: https://gist.github.com/Miguengineer/76df4ae7c17eb6bbf9c0328a5b5ca4b1 Actual ImageGallery: https://gist.github.com/Miguengineer/10e42985792b253fbf583559392cbc93