Android recyclerview使用Java代码动态添加和删除视图
我有一个recylerview项目作为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
<?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);
}
}