簡體   English   中英

將片段一的RecyclerView項位置傳遞到片段二的另一個RecyclerView適配器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM