Android recyclerview使用Java代码动态添加和删除视图

Android recyclerview使用Java代码动态添加和删除视图,android,insert,android-recyclerview,Android,Insert,Android Recyclerview,我有一个recylerview项目作为 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_paren

我有一个recylerview项目作为

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:id="@+id/sample1"
        android:text="Sample1"/>

      <LinearLayout 
      android:orientation="vertical" android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/insertat">
      </LinearLayout>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:id="@+id/sample2"
        android:text="Sample2"/>

</LinearLayout>
在onBindview中,我正在尝试此代码

 public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
      PersonViewHolderplace vh3 = (PersonViewHolderplace) viewHolder;
      vh3.sample1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if(vh3.toinsert == null){
                            View hiddenInfo = ((Activity) context).getLayoutInflater().inflate(R.layout.sample3, vh3.insertat, false);
                            vh3.insertat.addView(hiddenInfo);
                        }

                    }
                });
 }

public static class PersonViewHolderplace extends RecyclerView.ViewHolder
{
    TextView sample1;
    LinearLayout insertat;
    LinearLayout toinsert;

PersonViewHolderplace(View itemView)
    {
     super(itemView);
     this.sample1 = (TextView)itemView.findViewById(R.id.sample1);   
     this.insertat = (LinearLayout)itemView.findViewById(R.id.insertat);
     this.toinsert = (LinearLayout)itemView.findViewById(R.id.toinsert);
    }
 }
我在recyclerview中有10个项目

当我单击recyclerview中第一个项目的sample1时,Sample3XML被插入到第二个项目中

sample3.xml未插入到单击的同一项中。它被插入到其他项目中

此外,我只想添加一次,但即使我使用了条件(vh3.toinsert==null),它仍会在同一项中添加多次

 public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
      PersonViewHolderplace vh3 = (PersonViewHolderplace) viewHolder;
      vh3.sample1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if(vh3.toinsert == null){
                            View hiddenInfo = ((Activity) context).getLayoutInflater().inflate(R.layout.sample3, vh3.insertat, false);
                            vh3.insertat.addView(hiddenInfo);
                        }

                    }
                });
 }

public static class PersonViewHolderplace extends RecyclerView.ViewHolder
{
    TextView sample1;
    LinearLayout insertat;
    LinearLayout toinsert;

PersonViewHolderplace(View itemView)
    {
     super(itemView);
     this.sample1 = (TextView)itemView.findViewById(R.id.sample1);   
     this.insertat = (LinearLayout)itemView.findViewById(R.id.insertat);
     this.toinsert = (LinearLayout)itemView.findViewById(R.id.toinsert);
    }
 }