Android recyclerview使用Java代码

时间:2016-05-10 16:20:18

标签: 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_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>

onclicking id sample1我想在linearlayout id insertat中插入一个布局文件sample3.xml。 sample3.xml如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/toinsert">

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

</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时,sample3 xml将插入第二个项目中。

未在单击的同一项目中插入sample3.xml。它插在另一个项目中。

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

0 个答案:

没有答案