我有一个fragment
,它出现在底部导航活动中。 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
声明为全局变量。
答案 0 :(得分:0)
您已经在使用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);
}
}
}