У меня есть fragment, который присутствует в Bottom Navigation Activity. Fragments содержит специальный recyclerview. Когда я нажимаю кнопку комментария, открывается другое действие для комментариев. Ниже находится переходник RecyclerView.
viewholder.commentlay.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//commenttofragment.clear();
Intent comment = new Intent(fp, com.fooddoof.fuddict.comment.class);
int id = dusers.get(position).getId();
int comcount = dusers.get(viewholder.getAdapterPosition()).getCommentcount();
comment.putExtra("id",id);
comment.putExtra("ownerid",userid);
comment.putExtra("maincommentposition",position);
comment.putExtra("commentcountonposition", comcount);
fp.startActivityForResult(comment,1);
}
});
В активности комментариев после выполнения некоторых задач мне нужно отправить некоторые значения на этот fragment. Поэтому я отменяю метод OnBackPressed. Я создал в Fragment метод для его получения.
@Override
public void onBackPressed()
{
Bundle args = new Bundle();
args.putInt("maincommentcount",maincommentcount);
args.putInt("maincommentposition", maincommentposition);
FolowersPost f = new FolowersPost();
f.getdatafromcomment(args);
finish();
}
Я получаю его, как показано ниже, в Fragment.
public void getdatafromcomment(Bundle args)
{
int count = args.getInt("maincommentcount");
int p=args.getInt("maincommentposition",999999999);
Log.e("Shiva","count--->"+count+"p--->"+p);
}
Значения получены, но мне нужно получить доступ к arraylist в Fragement, который передается в Adapter для отображения recyclerView. Но я не могу получить к нему доступ, когда возвращаюсь к fragment, который присутствует в методе под OnCreateView. Я попытался получить к нему доступ с помощью OnResume, но работает только некоторое время. Я также объявил Arraylist как глобальную переменную.
@RumitPatel - я могу отправлять данные из активности комментариев во фрагмент, но я хочу обновить адаптер во фрагменте, используя значение, которое я отправил из активности комментариев. Для этого мне нужно получить доступ к arraylist, который присутствует во фрагменте после получения данных. Я не могу получить доступ к arraylist после завершения упражнения.




Вы уже используете startActivityForResult., теперь вам просто нужно использовать onActivityResult.
Но вам просто нужно начать активность с фрагмента, а не с адаптера.
onClick из фрагмента:
Intent comment = new Intent(getActivity(), com.fooddoof.fuddict.comment.class);
startActivityForResult(comment, 1);
onBackPressed в ваших комментариях:
@Override
public void onBackPressed() {
Intent returnIntent = new Intent();
returnIntent.putExtra("maincommentcount",10);
returnIntent.putExtra("maincommentposition",20);
setResult(Activity.RESULT_OK,returnIntent);
finish();
// super.onBackPressed();
}
onActivityResult во фрагменте:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK) {
int mMaincommentcount = data.getIntExtra("maincommentcount", 0);
int mMaincommentposition = data.getIntExtra("maincommentposition", 0);
System.out.println("mMaincommentcount = " + mMaincommentcount + ", mMaincommentposition = " + mMaincommentposition);
}
}
}
Я получаю значения без указанной выше опции. Проблема, с которой я столкнулся, заключается в том, что я не могу получить доступ к arraylist внутри метода.
но, согласно моему ответу, вы точно сможете получить доступ к своему списку массивов в onActivityResult..
Нет, я не могу получить к нему доступ после завершения действия.
вы используете startActivityForResult от фрагмента или от адаптера?
да .. Пожалуйста, проверьте мои вопросы для подробного объяснения
В вашем вопросе я вижу, что вы используете startActivityForResult от адаптера. что вы не должны. вы должны использовать его из фрагмента.
вы хотите отправить данные во фрагмент
onBackPressedактивности комментариев ??