![](/img/trans.png)
[英]Pass Object from one fragment to another fragment when recyclerView item is clicked
[英]Pass RecyclerView item position of Fragment One to another RecyclerView Adapter of Fragment Two
我在Fragment
1中設置了Recyclerview
。我想從片段1的RecyclerView適配器向片段2的RecyclerView適配器發送RecyclerView項的位置,以在片段2中設置RecyclerView的特定項。
這是片段一適配器的代碼
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
final CurrentStatusEntry current=filterList.get(position);
// holder.number.setText(current.getNo());
holder.Name.setText(current.getName());
holder.People.setText(current.getPeople());
holder.Time.setText(current.getTime());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=holder.getAdapterPosition();
AppCompatActivity activity=(AppCompatActivity)v.getContext();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame,satusInfo).addToBackStack("info").commit();
}
});
如何通過這個職位?
您可以使用Bundle
進行以下嘗試:
在片段1 setArguments
:
Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putInt(key, value);
fragment.setArguments(bundle);
在第二個片段getArguments
:
Bundle bundle = this.getArguments();
if (bundle != null) {
int myInt = bundle.getInt(key, defaultValue);
}
請參閱Android 文檔。
在片段一后片段實例中,片段二
getFragmentManager().beginTransaction()
.replace(R.id.ftHolder, fragmentTwo.newInstance(getAdapterPosition()))
.addToBackStack("info")
.commit();
在第二部分中添加此功能
public static fragmentTwo newInstance(int position) {
fragmentTwo fragment = new fragmentTwo();
Bundle bdl = new Bundle();
bdl.putInt("position", position);
fragment.setArguments(bdl);
return fragment;
}
並在onCreate()或onActivityCreated()中獲取並在任何地方使用
position = getArguments().getInt("position");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.